wordpressカスタム検索
Wordpressのcategoryを使ったカスタムsearch検索のソースです。
formでname="s"があるとsearch.phpに渡されます。今回は、
<input type="hidden" name="s">としてsは使わずに
name="cat1[]" name="cat2[]" name="cat3[]" と3つのグループに選択肢を入れて検索します。valueにはカテゴリ番号を入れます。
下のプログラムですが
cat1のグループはOR検索、どれかを含んでいるもの
cat2のグループはAND検索、すべて含んでいるもの
cat3のふるーぷはNOT検索、指定されたカテゴリは除く
$cat1=$_REQUEST['cat1'];
$cat2=$_REQUEST['cat2'];
$cat3=$_REQUEST['cat3'];
$args['tax_query']['relation']='AND';
if(!empty($cat1)) {
$args['tax_query'][] = array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $cat1,
'operator' => 'IN',
);
}
if(!empty($cat2)) {
$args['tax_query'][] = array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $cat2,
'operator' => 'AND',
);
}
$args['tax_query'][] = array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $cat3,
'operator' => 'NOT IN',
);
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array_merge($args,array(
'post_type' => array('post'),
'post_status' => array('publish'),
'order'=>'asc',
'orderby'=>'post_name',
'paged' => $paged,
'posts_per_page' => 4
));
$query = new WP_Query($args);
この記事が気に入ったらサポートをしてみませんか?