带有分类法的自定义帖子类型查询

时间:2020-09-29 作者:PaoloPgn

我使用此查询从我设置的自定义类型帖子中调用帖子

$args = array( \'posts_per_page\' => 5, \'order\'=> \'DES\', \'post_type\' => \'custom-post\' );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<div class="thumbnail">
<?php echo get_the_post_thumbnail( $post->ID, \'thumbnail\' ); ?>
</div>
<?php the_title( sprintf( \'<h2><a href="%s">\', esc_url( get_permalink() ) ),\'</a></h2>\' ); ?>
<?php  echo \'<p>\' . get_the_excerpt() . \'</p>\' ?>
<?php endforeach;
wp_reset_postdata();
两个问题:

这是正确的,还是我可以改进得更好both 在2种不同的分类法中,从该自定义帖子类型(例如“flowers”和“colors”)生成,然后在;“花朵”;类别,但not 在“中”;“颜色”;一个

2 个回复
SO网友:geouser

回答您的第二个问题-是的,这是可能的,您可以使用tax\\u query进行查询,例如,此查询将获取所有具有“flowers”分类法和“colors”分类法任何术语的帖子:

$query = new WP_Query( array(
    \'post_type\' => \'custom-post\',
    \'posts_per_page\' => 5,
    \'order\' => \'DESC\',
    \'tax_query\' => array(
        \'relation\' => \'AND\', // it is also possible to use OR
        array(
            \'taxonomy\' => \'flowers\',
            \'operator\' => \'EXISTS\'
        ),
        array(
            \'taxonomy\' => \'colors\',
            \'operator\' => \'EXISTS\'
        )
    )
) );
第二个查询将获取所有包含“flowers”分类法中术语,但不包含“colors”分类法中术语的帖子:

$query = new WP_Query( array(
    \'post_type\' => \'custom-post\',
    \'posts_per_page\' => 5,
    \'order\' => \'DESC\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'flowers\',
            \'operator\' => \'EXISTS\'
        ),
        array(
            \'taxonomy\' => \'colors\',
            \'operator\' => \'NOT EXISTS\' // <-- Take a look at this operator
        )
    )
) );
代码未经测试

这里还有文档的链接,请查看如何使用WP\\U查询https://developer.wordpress.org/reference/classes/wp_query/#standard-loop

以及WP\\U Tax\\U查询https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters

SO网友:PaoloPgn

在测试代码时,我最终得到了一个答案:在第一个查询中,我没有使用任何“操作符”,它可以工作!在第二个查询中,我使用了“In”和“NOT In”运算符,结果成功了!非常感谢。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post