如何在WP_Query中按日期排序?

时间:2016-07-26 10:37:22

标签: mysql wordpress sql-order-by

我尝试过这种方式,但 orderby 订单不适用于WP_Query类

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

始终返回 orderby => ' menu_order' order =' ASC'

注意:如果我在url中使用param作为 orderby = date& order = ASC 那么它工作正常但我需要作为WP_Query的参数。

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以在 WP_Query()中为 orderby 设置多个参数。例如日期标题 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 Version_4.x

中正常运行

答案 1 :(得分:0)

根据显示按日期排序的帖子的文档,您应该使用date。(但默认情况下是日期)

“orderby(string | array) - 按参数排序检索的帖子。默认为'date(post_date)'。可以传递一个或多个选项。”

     'orderby'=> 'date', 

要显示与某种类型相关的帖子,这些是有效的类型。所以你必须使用它们

  • 'post' - 帖子。
  • 'page' - 一个页面。
  • 'revision' - 修订版。
  • '附件' - 附件。虽然默认的WP_Query是post_status 是'发布',附件的默认post_status为'inherit'。 这意味着除非您明确说明,否则不会返回任何附件 将post_status设置为'inherit'或'any'。 (见下文post_status)
  • 'nav_menu_item' - 导航菜单项
  • 'any' - 检索除修订版和类型之外的任何类型 'exclude_from_search'设置为true。
  • 自定义帖子类型(例如电影)

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