如何获取基于多个类别的后期信息?

时间:2016-05-17 作者:Pawel J

我需要一个meta_value 来自wp\\U Posteta,我可以使用一个类别,但使用另一个类别时遇到问题。

我有:

SELECT wp_posts.ID, wp_postmeta.meta_value FROM wp_postmeta
LEFT JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id
LEFT JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id
LEFT JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
WHERE wp_postmeta.meta_key = \'_application\'
AND wp_term_taxonomy.term_id = \'14\'
我的结果是:

ID | meta_value
91 | [email protected]
99 | [email protected]
当我更改最后一行时wp_term_taxonomy.term_id = \'14\'wp_term_taxonomy.term_id = \'31\' 我将获得:

ID | meta_value
91 | [email protected]
95 | [email protected]
当我使用2个类别时,问题开始出现

SELECT wp_posts.ID, wp_postmeta.meta_value FROM wp_postmeta
LEFT JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id
LEFT JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id
LEFT JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
WHERE wp_postmeta.meta_key = \'_application\'
AND wp_term_taxonomy.term_id = \'14\'
AND wp_term_taxonomy.term_id = \'31\'
那我什么也得不到

MySQL返回一个空结果集(即零行)。

我应该得到:

ID | meta_value
91 | [email protected]
如何使用这两个类别(term_id = \'14\'term_id = \'31\' ) 同时在一个查询中,这样我的结果将只显示两个类别中的帖子的meta\\u值?

1 个回复
SO网友:Pawel J

好的,我很接近,我有解决方案:

SELECT wp_posts.ID, wp_postmeta.meta_value FROM wp_postmeta    
INNER JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id
INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)  
INNER JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id) 
WHERE 1=1 
AND wp_postmeta.meta_key = \'_application\'
AND ( wp_term_relationships.term_taxonomy_id IN (31) 
  AND 
  tt1.term_taxonomy_id IN (14)
) 

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the