GET_POSTS()返回所有帖子,而不是用‘POST_Author’=>指定的帖子

时间:2014-03-12 作者:SPi

我想为自定义帖子类型类别检索一个包含特定用户帖子的数组。

然而,get\\u posts($arg)返回此自定义post类型的所有post,尽管我指定了post\\u作者

<?php $pages = get_posts(array(\'post_type\'  => \'profile\',\'post_author\' => $post->post_author)); ?>

<?php var_dump ($pages); ?>
在本例中,$post->post\\u author是11。然而,上述代码的结果是:

array(3) { 
[0]=> object(WP_Post)#343 (24) { 
["ID"]=> int(2326)
["post_author"]=> string(2) "11" 
..etc.} 
[1]=> object(WP_Post)#352 (24) { 
["ID"]=> int(2324) 
["post_author"]=> string(1) "0" 
 ...etc.}
[2]=> object(WP_Post)#395 (24) { 
["ID"]=> int(2322)
["post_author"]=> string(1) "0" 
...etc.} 
为什么get\\u posts()返回ID为not 11个?

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

post_author 不是的有效参数get_posts. 你真的需要看看WP_Query\'的参数列表来查看,如get_posts() 真的是just a wrapper around that class.

作者-使用作者id。

  • 作者名称(字符串)–使用“user\\u nicename”(非名称)
  • 中的author\\u(数组)–使用author id(可用于Version 3.7).
  • 作者\\u不在中(数组)–使用作者id(可用于Version 3.7).
  • http://codex.wordpress.org/Class_Reference/WP_Query#Author_Parameters

    你想要的是author 没有post_ 部分试试看,它应该会起作用。

    SO网友:kaiser

    因为完全不清楚在哪里$post->post_author 最可能的问题是,您不是指$GLOBALS[\'post\'] 的实例WP_Post 或者在主循环之后有另一个查询,它将替换主查询。

    你最好的办法可能是wp_reset_query(). 这将重新对齐$GLOBALS[\'wp_query\'] 用于保存当前查询的对象$GLOBALS[\'wp_the_query\'] 同样,它保存了主查询和之后的调用wp_reset_postdata() 回放主查询。

    如果这没有帮助,那么某个插件(或您)或主题使用query_posts(), 覆盖全局$wp_the_query 对象,从而打乱循环。

    结束

    相关推荐