获取按类别过滤的自定义帖子上的最新4篇帖子

时间:2018-04-04 作者:Kryuko

我正在尝试按类别筛选最新的4篇帖子。我的帖子类型是产品。

我已经尝试了wp\\u get\\u recent\\u posts,但它没有类别过滤器的属性。

然后我尝试了WP\\u查询,但也不起作用。

$args2 = array(
    \'post_type\' => \'product\',
    \'taxonomy\' => \'product_cat\',
    \'category\' => \'30278\'
);

$the_query = new WP_Query($args2);
while ( $the_query->have_posts() ) :
    $the_query->the_post();
    echo \'<li>\' . get_the_title() . \'</li>\';
endwhile;
它总是向我显示相同的帖子。

这是我最近的邮编:

$args = array(\'post_type\' => \'product\',
    \'numberposts\' => 4,
    \'include\' => get_cat_ID($atts[\'category\']),
);
wp_get_recent_posts($args, $atts[\'category\']);
我试图添加参数include、exclude、category和category name。没有结果。我真的不知道怎么解决这个问题。提前谢谢你。

1 个回复
SO网友:Krzysiek Dróżdż

应该没有区别,无论是习惯WP_Querywp_get_recent_posts 在这种情况下应该很有魅力。(老实说,wp_get_recent_posts 使用get_posts and this one is based onWP\\U查询“”)。

所以问题不在于你试图使用的方法,而是你使用它们的方式。。。

wp_get_recent_posts

wp_get_recent_posts 函数接受两个参数:

$args—描述要获取的帖子的参数列表,$output—常量对象,ARRAY\\u A描述结果的格式

$args = array(\'post_type\' => \'product\',
    \'numberposts\' => 4,
    \'include\' => get_cat_ID($atts[\'category\']),
);
wp_get_recent_posts($args, $atts[\'category\']);
你把$atts[\'category\'] 作为第二个参数$output 参数不正确。更糟糕的是,您将类别ID设置为include 参数,它应该是应该包含的帖子列表。。。

How to make it work?

$args = array(
    \'post_type\' => \'product\',
    \'numberposts\' => 4,
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'product_cat\',
            \'field\' => \'term_id\',
            \'terms\' => 30278,
            \'operator\' => \'IN\'
        )
) );
$recent_posts = wp_get_recent_posts( $args );
那么为什么WP\\u查询方法不起作用呢?

查看WP\\U查询的可能参数:https://codex.wordpress.org/Class_Reference/WP_Query

没有调用任何参数taxonomy, 所以这个将被忽略。

也没有category param,因此此参数也将被忽略。

如何使其工作?简单-只需使用相同的$args 如中所示wp_get_recent_posts 请致电上方。

结束

相关推荐

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

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