获取自定义分类术语的所有帖子

时间:2019-02-01 作者:Neelam Khan

我有一个自定义分类法how-to-guide-type 我在这个分类法中设置了一些术语。

我只想显示分配给每个分类术语的帖子。

我有以下内容,但我似乎只能为第一个分类术语显示帖子,而不是为每个不同的术语显示帖子:

        $returnable = [];
        $custom_terms = get_terms(\'how-to-guide-type\');


        $query = new WP_Query([
            \'post_type\' => \'cpt_how_to_guides\',
            \'orderby\' => \'date\',
            \'order\' => \'ASC\',
            \'tax_query\' => [
                [
                    \'taxonomy\' => \'how-to-guide-type\',
                    \'field\' => \'slug\',
                    \'terms\' => $custom_terms[0]->slug,
                ],
            ],
        ]);


        if ($query->have_posts()) {
            $counter = 1;
            while ($query->have_posts()) {
                $query->the_post();

                $returnable[] = [
                    \'date\' => get_the_date(\'d M Y\'),
                    \'title\' => get_the_title(),
                    \'link\' => get_the_permalink(),
                    \'content\' => get_post_content(),
                    \'count\' => $counter
                ];
                $counter++;
            }
        }


        wp_reset_query();

        return $returnable;
我也试图通过术语为每个职位提供帮助,但这会显示所有职位,无论他们被分配到哪个术语。我希望查询能够动态地解决这个问题,而不必为terms => 参数

1 个回复
最合适的回答,由SO网友:anton 整理而成

如果只需要显示分配给分类法的帖子(仅显示分类法中每个术语的帖子列表,而不显示术语信息)

仅获取术语ID:

$custom_terms = get_terms( array(
    \'taxonomy\' => \'how-to-guide-type\', //your taxonomy
    \'hide_empty\' => true, //ignore terms without posts
    \'fields\' => \'ids\' //return only terms ids
));
现在$custom_terms 是一组术语ID。修改您的tax\\u查询,如下所示:

$query = new WP_Query([
    \'post_type\' => \'cpt_how_to_guides\',
    \'orderby\' => \'date\',
    \'order\' => \'ASC\',
    \'tax_query\' => [
        [
            \'taxonomy\' => \'how-to-guide-type\',
            \'terms\' => $custom_terms, //array with terms ids of your taxonomy
            \'operator\' => \'AND\' //display posts from all of these terms
        ],
    ],
]);
此外,您不需要为计数器创建自定义变量,您的$查询有一个用于此目的的属性。使用$query->current_post 而不是$counter 变量它从零开始。

相关推荐

WP_SET_POST_TERMS()似乎非常慢

正常吗wp_set_post_terms() 非常慢?什么时候wp_insert_post() 大约需要1秒。添加4wp_set_post_terms() 操作前7-10秒。伪代码示例:$values = [\'value_1\', \'value_2\', \'value_3\', \'value_4\', \'value_5\', \'value_6\']; $post_id = \'1234\'; $taxonomy = \'offerings\'; wp