2011-12-19 11 views
0

カテゴリ、タグ、カスタムフィールドでフィルタリングしているWordPressブログからの投稿を選択するクエリを作成しました。カスタムフィールド、タグ、カテゴリー別ワードプレスクエリフィルタリング

SELECT wp_posts.* 
FROM wp_posts 
WHERE wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' 

AND  (  SELECT COUNT(*) 
       FROM wp_term_relationships 
       LEFT JOIN wp_term_taxonomy ON (wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id) 
       LEFT JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id) 
       WHERE wp_posts.ID = wp_term_relationships.object_id 
       AND  (wp_terms.name = 'collaborazioni' && wp_term_taxonomy.taxonomy = 'category') 
         || 
         (wp_terms.name = 'jammin' && wp_term_taxonomy.taxonomy = 'post_tag') 
      ) >= 1 

AND  (  SELECT COUNT(*) FROM wp_postmeta 
       WHERE wp_postmeta.post_id = wp_posts.ID 
       AND wp_postmeta.meta_key = 'Product-code' 
       AND wp_postmeta.meta_value = 'xxxxxx' 
       ) >= 1 

しかし、私はそれが少し重いと思います。あなたはもっと良い解決策を持っていましたか?

ありがとう、Pietro。

答えて

0

正確に何を短くしたいですか?すでにかなり短くなっているようです。

PS。クエリーでwp_の代わりに{$wpdb->prefix}を使用すると便利です。

+0

私は正確に何を短くするべきかわからない、私はこれを行うためにbettere方法があるかどうか尋ねていた。とにかく$ wpdb-> prefix、ありがとう;) – pietrosld

+0

いいえ、あなたはそこで最大の短縮をしました。そして、$ wpdb->プレフィックスは、プレフィックスがデフォルトのwp_ではないWordpressインストールの中で動く可能性のあるすべてのスクリプトで使用しているものです。役に立つ小さなもの。 –

関連する問題