私はWordpressもphpも初心者で練習中です。
今は練習でサイトを作っています。
実装したいのは、
「キーワード、カテゴリ、タグ1、タグ2の3つの条件にAND条件でヒットする記事を表示する」
ためのsearchform.phpです。
初心者向けのサイトを見ながら、searchform.phpを以下のように記述しました。
php
1<form method="get" action="<?php bloginfo( 'url' ); ?>"> 2 <input name="s" id="s" type="text" placeholder="キーワードを入力"/><br /><br /> 3 4 <?php wp_dropdown_categories('depth=0&orderby=name&hide_empty=1&show_option_all=▽カテゴリーを選択&include=3,122'); ?> 5 6 <?php $tags = get_tags('include=6,7,8,9,10,11,12,13,20'); if ( $tags ) : ?> 7 <input type="hidden" name="and-or" value="AND"> / * ◆追加◆ * / 8 <select name='tag[]' id='tag1'> / * ◆変更◆ * / 9 <option value="" selected="selected">▽タグ1を選択</option> 10 <?php foreach ( $tags as $tag ): ?> 11 <option value="<?php echo esc_html( $tag->slug); ?>"><?php echo esc_html( $tag->name ); ?></option> 12 <?php endforeach; ?> 13 </select> 14 <?php endif; ?> 15 16 <?php $tags = get_tags('exclude=6,7,8,9,10,11,12,13,20'); if ( $tags ) : ?> 17 <input type="hidden" name="and-or" value="AND"> / * ◆追加◆ * / 18 <select name='tag[]' id='tag2'> / * ◆変更◆ * / 19 <option value="" selected="selected">▽タグ2を選択</option> 20 <?php foreach ( $tags as $tag ): ?> 21 <option value="<?php echo esc_html( $tag->slug); ?>"><?php echo esc_html( $tag->name ); ?></option> 22 <?php endforeach; ?> 23 </select> 24 <?php endif; ?><br /> 25 26 <input id="submit" type="submit" value="検索" /> 27 28</form>
上記の記述でできた検索フォームですと、タグ1が検索結果に反映されません。
検索結果画面のURLを見ると、
~~/?s=&cat=0&tag=tag1&tag=tag2
のようになっており、カテゴリIDが0でタグにtag2を持つ記事が一覧表示されます。
期待しているのは、カテゴリIDが0、タグにtag1とtag2を持つ記事の一覧表示です。
末尾が tag=tag1+tag2 になれば私が求める結果が得られると考えていますが、実装方法がわかりません。
ご教授いただけますと幸いです。
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/23 10:11
2018/02/24 20:08