WP_QUERY返回与GET_POSTS()不同的结果

时间:2019-02-21 作者:Aneesh Barthakur

因此,我有两段代码片段,试图获取当前页面的子页面。当前页面是“Sample”,下面的代码位于页面Sample中。php。

第一个代码段使用get\\u posts()

$args = array(
                \'post_parent\' => $post->ID,
                \'post_type\'   => \'page\', 
                \'post_status\' => \'any\' 
            );
$children = get_posts( $args );
// $children = get_children( $args ); //this also works,btw

foreach($children as $child){
    setup_postdata( $child );
    echo "<h1>" .  $child->post_title . "</h1>";
}
这将正确显示子帖子。

第二个代码段使用新的WP\\U查询对象

$args = array(
                \'post_parent\' => $post->ID,
                \'post_type\'   => \'page\', 
                // \'numberposts\' => -1,
                \'post_status\' => \'any\' 
            );
$child_pages_query= new WP_Query(args);
// echo $child_pages_query->post_count; // wrong answer already!
if ($child_pages_query->have_posts()){
    while($child_pages_query->have_posts()){
        $child_pages_query->the_post();
        echo "<h1> " . $post->post_title . " </h1>";
        }
}
这个incorrectly 显示器all posts . 没有页面,只有帖子。

我真的不知道我做错了什么

没有安装插件,我注释掉了所有父主题代码,包括页眉、页脚,直到它是一个空的html页面,尽管我在页眉中看不到任何内容。php或页脚。php可能会影响这一点现在有趣的是,更改WP\\u查询参数似乎没有任何影响。始终,所有帖子。WP\\U查询在其他页面上工作。

任何帮助都将不胜感激。非常感谢!

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

您缺少一个$ 在args之前输入

$child_pages_query= new WP_Query(args); 
应该是这样的

$child_pages_query= new WP_Query($args);

SO网友:Tom J Nowell

你忘了$ 在您的WP_Query args数组:

$child_pages_query= new WP_Query(args);
应为:

$child_pages_query= new WP_Query($args);
这应该在错误日志中显示为PHP警告/通知,通过标准调试和开发实践是可以预防的。

SO网友:hamdirizal

在WP\\U查询代码中,而不是

echo $post->post_title;     
试试看

echo $child_pages_query->post->post_title;

相关推荐

如何在wp-Query中比较不同的时间戳以获取事件自定义帖子类型?

我有一个带有自定义元数据库的自定义帖子类型(as seen on wptheming.com) 并且希望进行查询以显示即将发生的事件,例如在侧边栏中,过去的日期被忽略。但我需要一个当前时间的值来和事件开始时间进行比较。现在我从current_time(\'mysql\') 看起来是这样的:2012-02-16 13:15:31元的开始时间如下所示:201108121100如何使这两个日期具有可比性?我可以在查询中执行吗?或者是否有其他解决方案?以下是我到目前为止的查询(值留空,时间戳回显):<?ph