按一个自定义字段对Wordpress帖子进行排序,同时排除所有其他值

时间:2013-09-23 22:17:52

标签: php wordpress

我有两个自定义字段的wordpress帖子 'EPISODE_NUMBER' 'season_number'

我想选择season_number = 5(示例)的所有帖子,并按episode_number DESC排序

我写过这个

            $max_season=5;
            $args = array(
            'meta_key' => 'season_number',
            'meta_compare' =>'==',
            'meta_value' => $max_season,
            'orderby' => 'episode_number',
            'order' => 'DESC',
        );
$wp_query = new WP_Query($args);

基于season_number的选择有效,但我无法对它们进行排序,使用此代码wordpress根据发布时间对它们进行排序

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我原来的回答是不合适的,我误读了这个问题

尝试这样的事情:

$max_season=5;
$args = array(
    'meta_key' => 'episode_number',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
    'meta_query' => array(
        array(
        'key' => 'season_number',
        'value' => array($max_season),
        'compare' => 'IN',
        )
   )
);
$wp_query = new WP_Query($args);

答案 1 :(得分:0)

我相信WordPress只会查询您请求的指定元数据,即key=season_numbervalue=5(季节编号)。它不会查询键episode_number的后期元数据,因此您无法直接在SQL查询中按该字段进行排序。

您需要循环查询结果并获取key=episode_number的每个项目的元数据并相应地填充新的排序数组,或者找出在单个查询中同时查询此元数据的方法。

对于第二个,我不知道这是如何工作的。