按分类查询多个帖子

时间:2016-10-24 作者:Kris

我想查询两种帖子类型:“所有项目”和分类法为“轻”的“帖子”。有人知道如何做到这一点吗?

克里斯

3 个回复
SO网友:Kris

我通过在所有项目中自动添加标记“light”来解决了我的问题。然后用如下方式查询所有带有轻标记的帖子和项目:

按分类标记“light”查询帖子:

$args = array(
   \'post_type\'      => array( \'projects\' , \'post\' ),
   \'tax_query\'      => array(
   \'relation\'       => \'OR\',
        array(
          \'taxonomy\'    => \'post_tag\',
          \'field\'       => \'name\',
          \'terms\'       => \'light\'
        )
     ),
    \'post_status\'   => \'publish\'
);

query_posts( $args );
发布时向所有项目添加标记“light”:

add_action(\'publish_projects\', \'projects_post_type_tagging\', 10, 2);

function projects_post_type_tagging($post_id, $post){
    wp_set_post_terms( $post_id, \'light\', \'post_tag\', true );
}
这不是最优雅的解决方案,但它很有效。如果有更好的方法来解决这个问题,我很想知道。

SO网友:roscabgdn

您可以在中使用WP\\u查询参数ther tag\\uu来显示与该标记关联的帖子。您可以在此处阅读:https://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters

SO网友:amit singh

您是否为项目和帖子注册过自定义分类法?这种分类法的鼻涕虫是什么?

$args = array(
             \'post_type\' => array(\'post_type_1\', \'post_type_2\'), 
             \'posts_per_page\' => -1,
             \'post_status\' => \'publish\',
             \'taxonomy-slug\' => \'category-slug\'
);
$query = new WP_Query($args);

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next