首页 > 解决方案 > Wordpress 按多个元键排序

问题描述

我正在为 Wordpress 查询的 orderby 选项而苦苦挣扎。我想订购一个帖子列表,按是否存在键“其他值”的值排序。然后是项目的点击次数。

  1. 因此,首先是具有现有价值的帖子,然后是没有该价值的帖子。
  2. 然后在现有和不存在的帖子中,用户点击的顺序是“按点击排序”键。

询问

'meta_query'    => array(
    'relation' => 'OR',
    array(
        'relation' => 'AND',
        array(
            'key' => 'sort-by-clicks'
        ),
        array(
            'key' => 'other-value',
            'compare' => 'EXISTS',
        )
    ),
    array(
        'relation' => 'AND',
        array(
            'key' => 'sort-by-clicks'
        ),
        array(
            'key' => 'other-value',
            'compare' => 'NOT EXISTS',
        )
    )
),

我试图添加额外的参数来订购它,但我不知道什么是正确的方法。

不成功的orderby的 `

'othervalue' => array(
            'key' => 'other-value',
            'compare' => 'EXISTS',
        )

然后广告一个orderby

'orderby'  => array(
    'othervalue' => 'DESC'
)

我想这是正确的方法,但我没有看到难题的尽头

标签: wordpresssql-order-by

解决方案


我有解决办法。请尝试使用以下代码:

$args = array(
    'post_type'  => 'post_type_name',
    'meta_query' => array(
        'relation' => 'AND',
        'sortbyclicks' => array(
            'key'     => 'sort-by-clicks',
            'compare' => 'EXISTS',
        ),
        'othervalue' => array(
            'key'     => 'other-value',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'othervalue' => 'DESC',        
    ),
);

$loop = new WP_Query( $args );

谢谢!!


推荐阅读