2011-12-19 59 views
0

我已经使这个查询来选择来自WordPress博客按类别,标签和自定义字段进行过滤的帖子。通过自定义字段,标签和类别的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 

但我认为这有点沉重..你有没有更好的解决方案?

谢谢,彼得罗。

回答

0

你想缩短什么?它已经看起来很短了。

PS。您可能想在查询中使用{$wpdb->prefix}而不是wp_

+0

我不知道应该缩短什么,我是问我是否有一种方法可以做到这一点。无论如何,我将使用$ wpdb->前缀,谢谢;) – pietrosld 2011-12-20 10:10:59

+0

然后不,你已经做了最大限度的缩短。而$ wpdb->前缀是我在所有可能在Wordpress安装内运行的脚本中使用的,其中前缀不是默认的wp_。有用的小东西。 – 2011-12-20 15:58:52

相关问题