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