WP_QUERY按作者姓名筛选(返回NULL)

时间:2020-11-04 作者:danial rafiee

我想列出作者具有特定名称但WordPress返回空值的所有页面

$args = array(
    \'author_name \'=> \'admin\',
    \'post_type\'=>\'page\'
);

$pages = new WP_Query( $args );

foreach( $pages as $page ) {
    var_dump( $page->post_title );
}
结果是

NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL string(4) "test" NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

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

不是这样的WP_Query 行得通,文档中也没有这么说。WP_Query is not a function.

foreach 需要一个数组,或者可以迭代的东西,但是您已经给了它一个WP_Query 对象

相反,请查看文档或教程,它们都遵循标准post循环的基本模式:

$args = [
    // parameters go here
];
$query = new WP_Query( $args );
if ( $query->have_posts() ) { 
    while ( $query->have_posts() ) {
        $query->the_post();
        // display the post
        the_title();
        the_content();
    }
    wp_reset_postdata();
} else {
    echo "no posts were found";
}

相关推荐

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

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