0

我的 wordpress 帖子有两个自定义字段“episode_number”“season_number”

我想选择所有带有 season_number=5(example) 的帖子,并按 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 根据发布时间订购它们

任何人都可以帮助我吗?

4

2 回答 2

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);
于 2013-09-23T22:25:55.703 回答
0

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

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

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

于 2013-09-23T22:31:29.673 回答