今回の検索機能の要望は、次のようなものでした。

  • あるカスタム投稿で絞り検索したい
  • あるカスタムフィールドの値をプルダウンで選択して検索ができるようにしたい

カスタム投稿、カスタムフィールドでも絞れる・・・という事で『WP Custom Fields Search』を利用する事にしました。

1.プラグインのインストール

1

2.日本語化

日本語化ファイルを作って下さっている方がいらっしゃいます。
( http://lovelog.eternal-tears.com/wordpress/wp-plugin-ja/wp-custom-fields-search/ )

アップするファイル:
・wp-custom-fields-search-ja.mo
アップ先:
・/wp-content/plugins/wp-custom-fields-search/

日本語化前

2

日本語化後

3

2.検索フォームの作成

左メニューの設定内に「WP Custom Fields Search」というメニューが追加されるので、設定画面を表示します。

4

プラグインを追加した時点でdefaultのプリセットがひとつできています。
プリセット=検索機能一式 なので、検索機能が2つ欲しい場合は、プリセットを2つ作ります。
今回の場合だと、プリセットは1つ、フィールドは2つ作成します。

● フィールド1つ目の設定内容
このフィールドでやっている事。
・検索は、カスタム投稿「post-typea」の中から行うようにする
—–
データタイプ:「Post Type」を指定
—–
ウィジェット:「非表示の定数」を指定
Post Typeは、ユーザーが指定するものではないので、このフィールドは表示されません。
比較:同等
—–
ウィジェットの設定:post-typea
—–

● フィールド2つ目の設定内容
このフィールドでやっている事。
・検索条件は、カスタムフィールドの登録値をプルダウンで表示するようにする。
—–
データタイプ:「カスタムフィールド」を指定
—–
ウィジェット:「ドロップダウン」を指定
指定のカスタムフィールドに登録されている値がドロップダウンとなって表示する
—–
比較:同等
—–

設定項目のまとめ

ラベル: 検索フォームのラベル

データタイプ: 記事、カスタムフィールド、カテゴリー、タグ、Post Type

データフィールド: データタイプで記事フィールドとカスタムフィールドを選んだ際に入力可能になります。
記事フィールドを選んだ場合・・・all,post_content,post_title,post_author,post_date が入力可能
カスタムフィールドを選んだ場合・・・カスタムフィールド名で指定

ウィジェット: テキストを入力、ドロップダウン、ラジオボタン、非表示の定数、checkboxes
ここで分かりにくいのが、「非表示の定数」。これは、ユーザーに入力はしてもらわないけど、検索には含めたい項目(hiddenになります)です。

ウィジェットの設定:
ウェジェットが、ドロップダウン・・・カンマ区切りで固定値のリストを作成できます。(全検索は、「:指定なし」と記入します。例 :指定なし,test1,test2,test3,test4)
ウェジェットが、非表示の定数・・・初期値を入れておくことができます。

3.検索フォームの表示方法

1

「WP Custom Fields Search」の設定ページにある「テンプレートコード」や「ポストのためのタグ」を検索フォームを表示する箇所に記入します。
テンプレートコード・・・テンプレートへ追加の場合
ポストのためのタグ・・・投稿や固定ページ内に追加の場合

フォーム例

カスタム投稿:実績、カスタムフィールド:キーワード
[wp-custom-fields-search]