date. 2013/10/2

category. WordPress

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();
		// 処理を記述する
	}
}

と、することで先ほど記述内容の投稿を取得できます。

詳しくは参考サイトを御覧ください。

このようにカスタムフィールドの値を使用して簡単にソートできます。

参考サイト

関連記事