wordpress查询中不同内容的不同顺序

时间:2017-05-02 08:05:08

标签: php wordpress

在分类档案页面中,我想更改不同自定义帖子的显示顺序。

基本上我希望达到这个顺序:

  • " date_of_event"排序的未来事件自定义字段(较早的事件优先)
  • 我随机订购的所有其他自定义帖子
  • 由" date_of_event"订购的旧事件自定义字段(更接近事件)

我在我的功能页面中添加了一个pre_get_posts过滤器,如下所示:

function fwp_archive_per_page( $query ) {
    if ( is_tax() ) {

        $query->set('meta_query', 
            array(
                'relation' => 'OR',
                array(
                    'key' => 'date_of_event',
                    'compare' => 'NOT EXISTS',
                ),
                array(
                    'key' => 'date_of_event',
                    'value' => date("Ymd"),
                    'compare' => '>',
                ),
                array(
                    'key' => 'date_of_event',
                    'value' => date("Ymd"),
                    'compare' => '<',
                ),
            )
        );
        $query->set('orderby', 
            array(
                'meta_value_num' => 'DESC',
                'title' => 'ASC',
            )
        );
        //$query->set('posts_per_page', -1);
    }
}
add_filter( 'pre_get_posts', 'fwp_archive_per_page' );

这给了我这个订单。

  • &#34; date_of_event&#34;排序的未来事件自定义字段(较早的事件优先)
  • 由&#34; date_of_event&#34;订购的旧事件自定义字段(更接近事件)
  • 按标题排序的所有其他自定义帖子

是否可以通过过滤现有的归档查询来实现这一目标?

谢谢。

0 个答案:

没有答案