特定のカテゴリをカスタム分類で絞り込み検索をし、カスタムフィールドキーと値で独自に並べ替えをしたいときのコードの覚書です。
例:カテゴリ:drink、Taxonomy:vitamin、Term:vitamin_c
[html]
//—————————————————————————
//カテゴリとtermの絞り込み検索し、customfield-valueの多い順で並べ替え
//例:data.com/drink/?vitamin=vitamin_c
//—————————————————————————
function change_query_term($query){
if( !$query->is_admin() && $query->is_tax() ) {
if( !empty($_GET[‘vitamin’]) ){
$v_term = $_GET[vitamin];//customfield-key
$meta_query[] = array(
array( ‘key’=> $v_term,
‘value’=>’100’,
‘compare’=>’>’, //100より大きい
‘type’=>’DECIMAL’
)
);
$orderby = array(
‘meta_value_num’ => ‘DESC’
);
$query->set(‘meta_query’, $meta_query);
$query->set(‘orderby’, $orderby);
$query->set(‘posts_per_page’, 100);//100件表示
}
// var_dump($query);
}
}
add_filter(‘pre_get_posts’, ‘change_query_term’);
[/html]
参考サイト:
・WordPressのサイト上で簡単に並び替え&絞り込みする方法
・複数のカスタムフィールドで記事を並び替える