get_posts()とWP_Queryでorderbyを複数指定する方法
今更ですがWordPress 4.0からorderbyの複数指定が少しだけ簡潔になっていたので備忘録がてらにご紹介します。
下記のコードでカスタム投稿(origin_post)を取得します。
メタデータの"優先順位"というキーの値を参照し昇順(ASC)で取得され、
値が同じ場合は"ID"の値を参照し昇順で取得されます。
ポイントは、meta_queryの配列のキーを設定し、そのキーをorderbyのキーに指定する所。
<?php
$args = array(
'post_type' => 'origin_post',
'posts_per_page' => -1,
'post_status' => array('publish'),
'orderby' => array('優先順位' => 'ASC', 'ID' => 'ASC'),
'meta_query' => array(
'relation' => 'AND',
'優先順位' => array(
'key' => '優先順位',
//'value' => '今回のケースでは使用しない',
'type' => 'NUMERIC', // 'NUMERIC'(数値)、'BINARY'(バイナリ)、'CHAR'(文字列)、'DATE'(日付)、'DATETIME'(日時)、'DECIMAL'(少数)、'SIGNED'(符号付き整数)、'TIME'(時間)、'UNSIGNED'(符号なし整数)。デフォルト値は'CHAR'。
'compare' => 'EXISTS', // 使える値は'='、'!='、'>'、'>='、'<'、'<='、'LIKE'、'NOT LIKE'、'IN'、'NOT IN'、'BETWEEN'、'NOT BETWEEN', 'EXISTS' (WP3.5以降), and 'NOT EXISTS' (同じくWP3.5以降)。デフォルト値は'='。
),
),
);
$post_datas = get_posts($args);
?>
WP_Queryでも同じように使用できます。
Author And Source
この問題について(get_posts()とWP_Queryでorderbyを複数指定する方法), 我々は、より多くの情報をここで見つけました https://zenn.dev/kuroro777/articles/96a4f61d91f3c9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol