サポート » 使い方全般 » pre_gets_postsで指定のidを優先して先に表示し、その後日付を降順で取得する

  • test 1234

    (@lifestyledesign7777)


    いつもお世話になっています。

    指定のidで記事を先に表示させ、その後日付順の記事をループで表示させたいと思っています。

    $args = array(
    ‘taxonomy’=> ‘hoge’, //タクソノミー
    ‘terms’ => $term_id, // ID
    );

    $tax_query =array( ‘relation’ => ‘AND’,$args);
    $query->set(‘post_type’, ‘hoge’);
    $query->set(‘posts_per_page’, 10);
    $query->set(‘paged’, get_query_var(‘paged’) ? get_query_var(‘paged’) : 1);
    $query->set(‘tax_query’, $tax_query);
    $query->set(‘meta_key’, ‘number’);
    $query->set(‘orderby’, ‘meta_value_num date’);
    $query->set(‘order’, ‘desc’);

    こんな感じでorderbyを複数指定してみたのですが、
    meta_value_numの取得だけ実行され、dateは無視されています。

    SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (386,399,409) ORDER BY meta_id ASC

    meta_keyのnumberには各記事に数字を入れていたり、入っていなかったりします。
    書き方が違うのでしょうか?

    どなたかご教示よろしくお願いいたします。

  • トピック「pre_gets_postsで指定のidを優先して先に表示し、その後日付を降順で取得する」には新たに返信することはできません。