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();
// 処理を記述する
}
}
と、することで先ほど記述内容の投稿を取得できます。
詳しくは参考サイトを御覧ください。
このようにカスタムフィールドの値を使用して簡単にソートできます。
