複数カスタムタクソノミーでのOR検索の方法
-
お世話になります。
複数のカスタムタクソノミーからのOR検索ができるフォームを作成したいと思っております。
作りたい検索フォーム
↓
タクソノミー1と
タクソノミー2のタームをチェックボックスで表示し、
チェックしたタームに該当する記事を検索結果に表示する例)
タクソノミー1のターム1、またはターム2、または
タクソノミー2のターム1、またはターム2に該当する記事をすべて表示する(OR検索)自分で色々調べてタクソノミー1のみの場合であればOR検索ができるようになったのですが、
タクソノミー1とタクソノミー2の複数のカスタムタクソノミーに該当する記事を検索できる検索フォームはどのように記述したらいいのかわからず困っております。検索結果ページ
<?php
$s = $_GET[‘s’];
$post_tag = $_GET[‘post_tag’];//tax_query用
if($post_tag){
$taxquerysp[] = array(
‘taxonomy’=>’workstyle’,
‘terms’=> $post_tag,
‘include_children’=>false,
‘field’=>’slug’,
‘operator’=>’in’
);
}
?><div>検索条件</div>
<?php if($s){ ?>検索キーワード:<?php echo $s; ?><?php } ?>
<?php
if (is_array($post_tag)) { ?>タグ(カスタムタクソノミー):<?php
foreach($post_tag as $val){
if ($val === end($post_tag)) {
echo get_term_by(‘slug’,$val,”post_tag”)->name;
}else{
echo get_term_by(‘slug’,$val,”post_tag”)->name.”, “;
}
}
}
?><div>検索結果</div>
<?php
query_posts( array(
‘tax_query’ => $taxquerysp,
‘s’ => $s,
)
);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?><div><?php the_title(); ?></div>
<div><?php the_content(); ?></div><?php endwhile; else : ?>
<div>該当なし</div>
<?php endif;
wp_reset_query(); ?>検索フォーム
<form method=”get” id=”searchform” action=”<?php bloginfo(‘url’); ?>”>
<input type=”hidden” name=”s” id=”s” placeholder=”検索” />
<div>カスタムタクソノミー1</div>
<?php
$taxonomy_name = ‘workstyle’;
$taxonomys = get_terms($taxonomy_name);
if(!is_wp_error($taxonomys) && count($taxonomys)):
foreach($taxonomys as $taxonomy):
$tax_posts = get_posts(array(‘post_type’ => get_post_type(), ‘taxonomy’ => $taxonomy_name, ‘term’ => $taxonomy->slug ) );
if($tax_posts):
?>
<label><input type=”checkbox” name=”post_tag[]” value=”<?php echo $taxonomy->slug; ?>”><?php echo $taxonomy->name; ?></label>
<?php
endif;
endforeach;
endif;
?><input type=”submit” value=”検索” />
</form>ここから、さらにどのように記述すると
カスタムタクソノミーの複数検索ができるようになるでしょうか。
お手数をおかけしますが、みなさまのお知恵をお貸しください。
どうぞよろしくお願いします。
- トピック「複数カスタムタクソノミーでのOR検索の方法」には新たに返信することはできません。