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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1840閲覧

【WordPress】検索フォーム内において、同一のカスタム分類の検索をセレクトボックスで2つ用意したいです

akiyum

総合スコア29

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2016/06/07 05:23

現状、testというカスタム投稿のみを検索条件として

<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>"> <div> <h2>カスタム分類1</h2> <input type="hidden" name="post_type" value="test" /> <select name="tax1"> <option value="" selected="true">カスタム分類1を選んでください</option> <?php $home = site_url('/'); $tname = get_terms( 'tax1','hide_empty=1'); foreach ( $tname as $term ) { echo '<option class="level-0" value="'. $term->slug .'">'. esc_html($term->name) .'</option>'; } ?> </select> </div> <div> <h2>カスタム分類2</h2> <input type="hidden" name="post_type" value="test" /> <select name="tax2"> <option value="" selected="true">カスタム分類2を選んでください</option> <?php $home = site_url('/'); $tname = get_terms( 'tax2', 'hide_empty=1' ); foreach ( $tname as $term ) { echo '<option class="level-0" value="'. $term->slug .'">'. esc_html($term->name) .'</option>'; } ?> </select> </div> <input type="submit" id="searchSubmit" value="検索" /></form>

上記のようなフォームの作り方をしてしているのですが、
「カスタム分類2」のセレクトボックスを2つに増やしたいです。
単純に「カスタム分類2」のdivを複製しても検索結果には一つしか反映されないので、
おそらく、配列化して検索結果ページに引き渡さないといけないのかと思いますが、
どうすればよいかわからず困っています。

こちらの解決策を何かご教授いただけますと幸いです。

kei344👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

selectで実際にやったことないですが

html

1<select name="tax2[]">

両方ともnameの値をtax2[]にしてあげれば配列で送信されると思います。

ちょっと方向性は違いますが

html

1<select name="tax2[]" multiple size="5">

として複数選択可能なセレクトボックスにすることも可能です(デザイン上の問題は置いといて)

投稿2016/06/07 10:31

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

akiyum

2016/06/07 18:03

ありがとうございます! 配列のままで検索結果に渡すとエラーが出たので、 文字列に直してから送るとうまくいきました。 ※文字列になったので、$term->slugを$term->nameにしました 参考:http://www.webopixel.net/wordpress/584.html ただ、検索結果が、AND検索になってしまうので、OR検索にする方法などありますでしょうか。。 もしよろしければご教授いただけますと幸いです。
kei344

2016/06/08 06:49

横から失礼します。 To: akiyumさん posts_search フィルタか pre_get_post フィルタで操作する方法があります。ただ当初の質問内容とは離れてしまうため、一旦この質問を「解決済」にされ、新たに質問されることをお勧めします。
akiyum

2016/06/08 10:24 編集

kei344さん > 仰るとおりですので、「解決済」にさせていただき、こちらで閉めさせていただきます。 一度、 -------------------------------- posts_search フィルタか pre_get_post フィルタで操作する方法 -------------------------------- こちらで自分なりに調べてみようと思います。 ご指摘・ご回答ありがとうございました。 hide2e3rさん > 改めてご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問