【WordPress】複数のカスタムフィールドで並び替え
WordPress 4.2 から複数のカスタムフィールドの値で並び替えができるようになったようです。
以下のコードを
[php]
function custom_pre_get_posts() {
if ( ! $query->is_admin() && $query->is_archive() ) {
$meta_query = array(
‘relation’ => ‘AND’,
‘配列名1’ => array(
‘key’ => ‘カスタムフィールド1’,
‘type’ => ‘タイプ1’
),
‘配列名2’ => array(
‘key’ => ‘カスタムフィールド2’,
‘type’ => ‘タイプ2’
),
);
$orderby = array(
‘配列名1’ => ‘並び順( ASC or DESC )’,
‘配列名2’ => ‘並び順( ASC or DESC )’,
);
$query->set( ‘meta_query’, $meta_query );
$query->set( ‘orderby’, $orderby );
}
}
add_filter(‘pre_get_posts’, ‘custom_pre_get_posts’);
[/php]
pre_get_posts の条件や Query の日本語部分は、
必要にに合わせて書き換えてください。
Query の条件は、上記以外のものも指定できます。
配列名は任意の名前で大丈夫です。