WordPressのカスタムフィールドでソートする方法です。
WordPressで投稿を取得する際にWP_Queryを使用して投稿を取得したりすると思いますが、
カスタムフィールドの値を使用して、投稿を取得する方法です。
カスタムフィールドが特定の値の投稿を取得する
カスタムフィールドが特定の値の投稿を取得する方法です。
今回は例として投稿タイプが『test』keyが『test_key』、valueが『test_value』が入っている投稿を取得する方法です。
$loop = new WP_Query(array( 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => 15, // 投稿タイプ 'post_type' => 'test', // カスタムフィールドキー 'meta_key'=>'test_key', // カスタムフィールド値 'meta_value'=>'test_value', ) ); if($loop->post_count !== 0){ while ( $loop->have_posts() ){ $loop->the_post(); // 処理を記述する } }
と、することで指定したカスタムフィールドの値の投稿を取得することが出来ます。
meta_key・meta_valueは適宜変更して下さい。
詳しくは参考サイトを御覧ください。
カスタムフィールドの値で並び替えする
カスタムフィールドの値で並び替えする方法です。
今回は例として、カスタムフィールドのキーが『test_key』の投稿を降順に並び替えます。
$loop = new WP_Query(array( 'orderby' => 'meta_value', 'order' => 'DESC', 'post_type' => 'test', 'posts_per_page' => 15, 'meta_key' => 'test_key' ) ); if($loop->post_count !== 0){ while ( $loop->have_posts() ){ $loop->the_post(); // 処理を記述する } }
と、することでカスタムフィールドのキーが『test_key』の投稿を降順に並べ替えられます。
orderbyの値をmeta_valueとすることでカスタムフィールドの値で並べ替え出来るようになります。
数字で並び替える際にはorderbyの値をmeta_value_numにすることで正しく並び替えることが出来ます。
詳しくは参考サイトを御覧ください。
より条件が複雑な投稿を取得する
より条件が複雑な投稿を取得する方法です。
今回は例として投稿タイプが『test』keyが『test_key』、valueが『test_value』で
カスタムフィールドkey『test_id』でvalueが『1・2・3』ではない投稿を取得する方法です。
$ids = array(1, 2, 3); $loop = new WP_Query(array( 'post_type' => 'test', 'posts_per_page' => 15, 'meta_key' => 'test_key', 'meta_value' => 'test_value', 'meta_query' => array(array( 'key'=>'test_id', 'value'=>$ids, 'type' => 'numeric', 'compare'=>'NOT IN' )) ) ); if($loop->post_count !== 0){ while ( $loop->have_posts() ){ $loop->the_post(); // 処理を記述する } }
と、することで先ほど記述内容の投稿を取得できます。
詳しくは参考サイトを御覧ください。
このようにカスタムフィールドの値を使用して簡単にソートできます。