如何在WP_Query中按日期排序?

9

我尝试了这种方法,但是在WP_Query类中orderbyorder不起作用。

$posts = new WP_Query(
array(
    'post_type'=> 'block_code', 
    'orderby'=> 'post_date', 
    'order' => 'DESC'
    )
);

通常它返回 orderby=> 'menu_order'order='ASC'

注意:如果我在URL中使用参数 orderby=date&order=ASC ,则它可以正常工作,但我需要用作 WP_Query 的参数。

提前致谢

2个回答

16
你可以在WP_Query()中设置多个orderby参数,例如date, title, menu_order等。
这里是Order & Orderby Parameters试试这个例子:
$params = array(
    'post_type' =>'block_code',
    'orderby'   => array(
      'date' =>'DESC',
      'menu_order'=>'ASC',
      /*Other params*/
     )
);
$query = new WP_Query($params);

这个例子在我使用的 WP 4.x 版本 上正常工作。


我已经用这种方法解决了问题,谢谢 @sumon :) :) - tarikul05
谢谢你,@tarikul05。 - Sumon Sarker

2
根据文档显示按日期排序的帖子,应该使用date。(但默认情况下仍是日期)
"orderby(字符串 | 数组)-按参数对检索到的帖子进行排序。默认为“date(post_date)”。可以传递一个或多个选项。"
     'orderby'=> 'date', 

展示与特定类型相关联的文章,以下是有效的类型。因此,您必须使用其中之一:
  • 'post' - 文章。
  • 'page' - 页面。
  • 'revision' - 修订版本。
  • 'attachment' - 附件。尽管默认WP_Query post_status 是'publish',但附件具有默认的'post_status'为'inherit'。 这意味着除非您还明确设置'post_status'为'inherit'或'any', 否则不会返回任何附件。 (请参见下面的'post_status')
  • 'nav_menu_item' - 导航菜单项
  • 'any' - 检索除了排除在搜索范围之外的修订版本和类型之外的任何类型。
  • 自定义内容类型(例如电影)

https://codex.wordpress.org/Class_Reference/WP_Query


尝试过使用'orderby'=> 'date',但对我无效。 - tarikul05
WP_Query('orderby=date&order=DESC') 这个对你有用吗? - George Pant
针对代码块类型的文章,您是否已经创建了单独的模板页面以便展示该页面? - Prakash Rao
首先,block_type是什么?如果它是自定义文章类型,您应该首先创建它。但这是另一个问题......按日期排序与此无关... - George Pant
是的,@George,block_type是自定义文章类型。是的,已经创建了它。已经存在数据。但orderby和order不起作用。 - tarikul05
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接