質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

1回答

1427閲覧

WordPressの検索結果ページに検索で使用したタームを表示させるにはどうすればよいでしょうか?

ryuji0205

総合スコア15

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/10/04 20:23

カスタムタクソノミーに、設定したタームを検索フォームに呼び出しプルダウンメニューとチェックボックス表示で複数選択できるように設定しました(絞り込み検索のような機能です)

検索結果(search.php)にはタームに付随する記事が表示されたので機能としては動いてるのですが、その際に選ばれたタームの表示は可能でしょうか?

検索結果画面に、このようなキーワードが表示できるようにしたいと考えてます↓

●選択されたキーワード
■ラーメンの種類:
とんこつ、しょうゆ、激辛

■ラーメンがおいしい地域:
池袋、新宿、品川

検索用PHPソース <form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>"> <input type="hidden" name="s"> <input type="hidden" name="post_type" value="area" /> <div> <span>ラーメンの種類</span> <select id="input-id" name="area_all"> <option value="" selected="true">指定なし</option> <?php $terms = get_terms('タクソノミー名A' , 'get=all'); foreach($terms as $term){ echo '<option value="' . $term->slug . '">' . esc_html($term -> name) . '</option>'; } ?> </select> </div> <div> <span>ラーメンがおいしい地域</span> <?php $terms = get_terms('タクソノミー名B' , 'get=all'); foreach($terms as $term){ echo '<li><label><input value="' . $term->slug . '" type="checkbox" name="タクソノミー名B[]">' . esc_html($term -> name) . '</label></li>'; }?> </div> <input type="submit" id="searchsubmit" value="この条件で検索する" class="submit"/> </form>
検索結果PHP <?php if( !empty($cat_area) || !empty($post_tag) ) { ?> <ul> <?php if( have_posts() ): while ( have_posts() ) : the_post(); ?> <li> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a> </li> <?php endwhile; else: endif; ?> </ul> <?php } else{ ?> <ul> <?php if( have_posts() ): while ( have_posts() ) : the_post(); ?> <li> 検索ヒット時の内容を表示 </li> <?php endwhile; ?> <?php else : ?> <p>一致する情報は見つかりませんでした。</p> <?php endif; ?> </ul> <?php } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

その際に選ばれたタームの表示は可能でしょうか?

というのは、検索フォームで選択した項目のことでしょうか?

検索フォームの値は、Query String で渡るので、普通に $_GET や $_REQUEST から取得できないでしょうか?

検索フォームの value にスラッグを渡しているようなので、名前に置き換えるには、 get_terms で名前を取得して表示すれば良いと思います。


検索用PHPソースから呼び出したとすると
種類の選択は、 $_GET['area_all'] で、
地域の選択は、 $_GET['タクソノミー名B'] で、取得できます。

たとえば、以下のような感じで選択したスラッグを表示できないでしょうか。

php

1echo "種類:", $_GET['area_all'], "\n"; 2echo "地域:" 3foreach( $_GET['タクソノミー名B'] as $value ){ 4 echo $value, " "; 5}

投稿2018/10/05 01:03

編集2018/10/08 12:36
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuji0205

2018/10/06 03:38

コメントありがとうございます、申し訳ありません具体的なコードを教えていただけますでしょうか、、?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問