複数のカスタムフィールドの値で記事を並び替える

複数のカスタムフィールドの値で記事を並び替える

例)
カスタムフィールドの値を元に、それぞれ降順に並び替える。
・sort_parent_id
・sort_child_id
・記事更新日
※Wordpress4.2以降

<?php
/**
 * 投稿タイプharapekoの並び順を変更する
 * 並び順:sort_parent_id降順、sort_child_id降順、更新日降順
 * @param  array $query
 */
function change_query_harapeko_archive($query){
    if( !$query->is_admin() && $query->is_post_type_archive( 'harapeko' ) ) {
        $meta_query = array(
            'relation' => 'AND', //meta_queryの配列が1つの時は指定しない
            'meta_sort_parent_id' => array(
                 'key' => 'sort_parent_id', //カスタムフィールドのキー
                'type' => 'NUMERIC',     //カスタムフィールドの値のタイプ
            ),
            'meta_sort_child_id' => array(
                 'key' => 'sort_child_id', //カスタムフィールドのキー
                'type' => 'NUMERIC',       //カスタムフィールドの値のタイプ
            )
        );

        $orderby = array(
            'meta_sort_parent_id' => 'DESC',
             'meta_sort_child_id' => 'DESC',
                           'date' => 'DESC'
        );

        $query->set('meta_query', $meta_query);
        $query->set('orderby', $orderby);

        //var_dump($query); wq_query配列の確認に使いました
    }
}
add_filter('pre_get_posts', 'change_query_harapeko_archive');

参考サイト

Qiita
ヾ(o゚ω゚o)ノ゙複数のカスタムフィールドで記事を並び替える
http://qiita.com/harapeko_wktk/items/4fe7d39ad22d3951e5cc