定制邮政类型订单索引循环

时间:2014-05-14 作者:CraigColes

我创建了一个名为“事件”的自定义帖子类型。在索引页面上,我想修改循环以列出所有帖子(标准和事件)。但是,我希望按发布日期对标准帖子进行排序,并希望按包含事件日期的自定义字段对事件进行排序。

示例:

Standard Post  (Posted on 12th May 2014)
Standard Post  (Posted on 11th May 2014)
Event Post     (10th May 2014)
Standard Post  (Posted on 9th May 2014)
Event Post     (8th May 2014)
Event Post     (7th May 2014)
Standard Post  (Posted on 6th May 2014)
我在索引上为query\\u post添加了这些参数。php

<?php 
  query_posts( array( 
    \'post_type\'   => array( \'events\', \'post\'),
    \'meta_key\'    => \'date_of_event\',
    \'orderby\'     => \'meta_value\',
    \'order\'       => \'asc\',
    \'meta_query\'  => array(
        \'key\'     => \'date_of_event\',
        \'value\'   => date("Ymd"),
        \'compare\' => \'>=\',          
        \'type\'    => \'DATE\'         
      )
    )
  );
?>
目前我只返回事件

1 个回复
SO网友:Pete Gale

您在查询中只引用了事件日期,这就是为什么您没有收到正常的帖子(因为我假设他们没有事件日期)。您可以将“orderby”与多个值一起使用(用空格分隔),因此您应该能够将其更改为:

\'orderby\'     => \'meta_value date\'
这意味着,如果没有事件日期,对于常规帖子,查询将返回到您的帖子日期。

结束

相关推荐

使用wpdb->Prepare for`ORDER BY`列名

在我当前的插件中,我选择order by 列作为用户输入。所以我想用wpdb->prepare 为了逃避它。$wpdb->get_results($wpdb->prepare(\"Select id from $wpdb->posts order by %s %s\", $order_by_col, $order_by); 这不起作用,因为它会变成select id from wp_posts order by \'post_date\' \'asc\' (注意