検索フォーム全体の設定

管理画面にログインし、左列メニューの「検索」ページを開くと、1つ目のタブに下記のようなセクションが表示されます。このセクションで、右上のドロップダウンで選択された検索フォームの全体的な設定を行います。設定はフォームごとに独立しています。

名称

検索フォームの名称を設定します。機能に影響するものではなく、管理しやすい名称を任意で設定してください。

フォームID

検索フォームのIDです。

検索対象の投稿タイプ

ターゲットとする投稿タイプ(Post Type)を指定します。これにより特定の投稿タイプに絞って検索することができます。複数の投稿タイプを指定できますので、投稿タイプを横断的に検索できます。「attachment」を選択した場合は、記事の編集画面において「メディアを追加」ウィンドウの「タイトル」欄に入力した文字(post_name)が検索されます。

固定記事(Sticky Posts)について

投稿 > 文書 > ステータスと公開状態  > 「ブログのトップに固定」にチェックを付けた記事も検索対象に含む場合はチェックを入れます。FEASはデフォルトではStick Postsを検索から省くようになっています。固定記事は検索結果においても常に表示され、もしその記事が検索にヒットした場合、固定記事と検索結果で二重に表示されるためです。

固定タクソノミ/ターム

特定のタクソノミ/タームをあらかじめ検索条件として設定できます。ポータルサイトなど、1つのサイトに様々なジャンルのコンテンツを管理しタクソノミ/タームで分類している場合に、あらかじめ各ジャンルの記事に絞った検索フォームを作成できます。

検索条件に件数を表示

「表示する」にチェックを入れると、各検索条件の右側に括弧付きの数字で、条件ごとの対象記事数を表示します。

検索結果から除外(記事/ターム)

検索結果から除外したい記事がある場合は、記事ID/タームIDを半角カンマ区切りで入力することで、検索結果から省くことができます。

※特定のカスタムフィールドの値を持つ記事を省く機能は近い将来のアップデートで実装予定です。

検索条件が指定されずに検索された場合

検索条件がいずれも指定されない状態で検索ボタンがクリックされた場合の挙動を選択できます。

  • 0件を返す:検索結果には記事を表示しません(該当なし)。
  • 固定タクソノミ/タームの記事の一覧を表示:前述の「固定タクソノミ/ターム」で設定した記事一覧を表示します。

検索結果の並び順

検索結果において記事が並ぶ順序を指定できます。WordPressの標準では「投稿日の新しい順」に記事が並びますが、投稿日の他に下記の順で表示できます。

  • 投稿日時 = 投稿日の古い順/新しい順(昇順/降順)に並びます。
  • タイトル = タイトルの50音順(昇順/降順)に並びます。
  • スラッグ = 記事のスラッグ(URLに含まれる文字列)の50音順(昇順/降順)に並びます(スラッグを編集するには、設定 > パーマリンク設定にて、「共通設定」に%postname%が含まれる構造にした上で、記事編集画面の「パーマリンク」の「URLのスラッグを入力」欄にて設定します)。
  • カスタムフィールド = 右隣に表示されるドロップダウンで指定したカスタムフィールドのキーの値の昇順/降順に並びます。価格やよみがななど、値の種別に応じて「文字列」か「数値」を指定してください。
  • ランダム = 検索を実行する度に、違った順に並びます。

オプションで第二条件を指定できます。第一条件でソートした際に同じ順位の記事がある場合に、それらの並び順を第二条件で指定できます。

昇順/降順

  • 昇順 = 値の小さい順(例:0〜99..、A〜Z、あ〜ん、ア〜ン)に並びます。
  • 降順 = 値の大きい順(例:99..〜0、Z〜A、ん〜あ、ン〜ア)に並びます。

カスタムフィールドのキー(カスタムフィールド選択時のみ)

  • 作成済みのカスタムフィールドのキーが並びます。ソートの基準になるキーを選択してください。

数値/文字(カスタムフィールド選択時のみ)

  • 数値  = カスタムフィールドの値を数値として扱います。価格などでのソート時はこちらを選択
  • 文字列 = カスタムフィールドの値を文字列として扱います。よみがななどでのソート時はこちらを選択

数値が保存されたカスタムフィールドは注意が必要です。

  • 「数値」の場合の並び順  = 50、100、2000、10000
  • 「文字列」の場合の並び順 = 100、10000、2000、50

    検索項目の作成

    2つ目のタブには、次のようなセクションが表示されます。

    コードを一行も書かずに検索フォームを作成できます。

    1. 初期状態で、1つ目の検索パーツの設定欄と検索ボタンが表示されています。
    2. 左下の「設定を保存」をクリックすると設定が保存されます。
      条件を1パーツ分設定するごとに「設定を保存」してください。保存せずに右上の「項目を追加」ボタンをクリックすると、直前の作業内容がリセットされます。
    3. 「プレビュー」タブに、保存した検索フォームの内容が反映されます(この段階では「投稿年月」のドロップダウンと検索ボタンのみ)。
    4. 作成する検索フォームに合わせて作り込んでいきます。

    見出し

    検索パーツの前に挿入される文字列です。HTMLタグが使えます(省略可能)。例えば、求人サイトにおいて業種のドロップダウンを表示する際に「業種で検索」などと記述します。

    条件

    検索パーツに呼び出される条件(投稿年月/タグ/カテゴリ/カスタムタクソノミ/カスタムフィールドのキー)を選択します。「投稿年月」は記事が公開された年月が表示されます(公開記事がある年月のみ表示)。「タグ」を選択すると、記事の登録があるタグの一覧が表示されます。カテゴリとカスタムタクソノミは、検索パーツに表示したいリストの親カテゴリ/タームを指定します。指定された親カテゴリ/タームの子カテゴリ/タームが検索パーツに表示されます。カスタムフィールドには登録のあるカスタムフィールドのキー一覧が表示されますので、検索対象とするキーを選択してください。

    形式

    • ドロップダウン = 1つの項目を選択できます。省スペースですが項目数が多い場合は使いにくくなります。「範囲検索」を設定できます。
    • セレクトボックス = 複数の項目を選択できます(キーボードのShift/Ctrl(Windows)、Shift/Command(Mac)キーを使用)。
    • チェックボックス = 複数の項目を同時に選択できます。一覧性が高いですが、スペースを取ります。
    • ラジオボタン = 1つの項目を選択できます。性別/有無など、選択肢が少ない項目に向いています。「範囲検索」を設定できます。
    • フリーワード = キーワード検索用です。キーワードを探す箇所(タイトル/本文/抜粋/記事が属するターム名/コメント欄/カスタムフィールドの値)を指定できます。カスタムフィールドの場合は特定のキーに限定できます。

    項目内の並び順

    検索パーツ内の項目の並び順を設定します。
    投稿年月は昇順/降順を指定できます。タグ/カテゴリ/タームはID/名称/スラッグ/ランダムの他、「カスタム」を選択した場合は「Category Order and Taxonomy Terms Order」等のプラグインを併用して、管理者が設定した並び順で表示することができます。version1.8で実装された「自由記述」の場合は、二段目に表示される「検索パーツの表示項目(自由記述の内容)」にて、表示したい表記・値・順序に自由に記述いただけます。

    「自由記述」の場合、記述したとおりの順序・表記でドロップダウンを構成可能に。マイナス記号でインデントを表現。実際に値がデータベースに登録されているか否かにかかわらず自由に記述できますので、特にカスタムフィールドで範囲検索を設定する場合に5,000円・10,000円・50,000円など切りの良い値で構成でき、より実用的になりました。

    記述したとおりの順序・インデントで表示

    複数選択時の検索方法

    複数項目の選択ができる形式(チェックボックスまたはセレクトボックス)の場合のみ指定できます。

    • OR検索 =同検索パーツ内で複数選択した場合、それらのいずれかの項目に当てはまる記事を検索
    • AND検索 =同上 それらのすべての項目に当てはまる記事を検索

    検索項目の作成・2段目

    未選択時の文字列

    デフォルトで「—未指定—」と表示される文字列を変更できます。ラジオボタン形式の場合は、選択状態をリセットするためのラジオボタン(空のvalue)を表示するかどうかを「表示」のチェックボックスで指定できます。

    前に挿入・後に挿入するHTML/CSS

    検索パーツの前後に挿入するHTMLコードなどを記述します。
    下記の様に記述し、ご使用中のテーマのスタイルシートに「.search-category」のCSSを記述することで検索パーツのデザインがしやすくなります。

    前に挿入:<div class="search-category">
    後に挿入:</div>

    または、インラインで下記のようにCSSを記述することもできます。

    <div style="border:1px solid silver; padding:3px;">
    
    <!--1ピクセルの薄いグレーの枠線で囲み、枠の内側に3pxの余白が付きます。-->

    並び順

    検索フォーム全体の中の各検索パーツの並び順を設定します。数値で並び順を指定し「設定を保存」ボタンでクリックしてください。

    表示する

    検索パーツの設定を残したまま一時的に検索フォーム上に表示しない場合「表示しない」に設定します。

    項目を削除

    検索パーツを削除したい場合に「項目を削除」にチェックを入れて「設定を保存」をクリックしてください。

    除外ID(タグ/カテゴリ/ターム)

    「条件」にタグ/カテゴリ/タームを設定したとき、特定のタグ/カテゴリ/タームを検索パーツに表示したくないときは、半角カンマ区切りでタグ/カテゴリ/タームIDを入力してください。

    階層(カテゴリ/ターム)

    「条件」にカテゴリ/タームを設定したとき、表示する子カテゴリ/タームの階層を半角数字で指定します。未入力または「-1」の場合は無制限(下階層がある限り表示)に表示します。例えば「0」を入力の場合は「条件」に指定した親カテゴリ/ターム直下の第一階層のみ、「 1」を入力の場合は、子カテゴリ/タームがある場合に1階層分がインデント表示されます。

    また、後述の「Ajaxフィルタリング」を設定したとき、階層指定することで初期状態で表示するドロップダウンの数を指定できます。

    登録件数が0件のカテゴリ/タームは表示しない(タグ/カテゴリ/ターム)

    登録が1件もないタグ/カテゴリ/タームを表示しない場合はチェックを付けます(親カテゴリ/タームが0件の場合、子カテゴリ/ターム以下も非表示となります)。

    Ajaxフィルタリング(カテゴリ/ターム)

    ※現状、ドロップダウン形式のみ対応

    親カテゴリ/タームのドロップダウンの値を選択すると、その子カテゴリ/タームが存在する場合に、親カテゴリ/タームのドロップダウンの右隣に、子カテゴリ/タームのドロップダウンをJavaScriptで動的に表示します。初期状態では親カテゴリ/タームのドロップダウンのみが表示されています。前述の「階層」を指定することで、初期状態で表示するドロップダウンの数を指定できます(v1.7.7以降)。

    都道府県から市区町村へと絞り込む場合、あるいは沿線から各駅名へと絞り込む場合など、下層カテゴリ/タームの数が膨大になる場合に特に便利です。

    v1.7.7の新機能

    「階層」を指定することで、初期状態で表示するドロップダウンの数を指定できます。たとえば階層に 3 と入力すると、第一階層のドロップダウンの他に空のドロップダウンがさらに2つ、合計3つのドロップダウンが生成されます。1つ目のドロップダウンで値を選択すると、その子カテゴリ/タームの内容が2つ目のドロップダウンに反映されます。3つ目も同様です。ただし、それより深く子カテゴリ/タームが存在する場合でもドロップダウンの数は固定となるため、それ以降の階層は検索条件に指定できません。

    Ajaxフィルタリング 階層指定

     

    範囲検索(投稿年月/カスタムフィールド)

    “料金” や “期間” など、ある範囲に該当する記事を検索することができます。 条件に投稿年月を選択した場合は、指定した投稿年月より前/以前/以後/後に投稿された記事を検索できます。 条件にカスタムフィールドのキーを選択した場合は、指定した値より未満/以下/以上/超の範囲にそのカスタムフィールドの値を持つ記事が検索にヒットします。単一選択形式であるドロップダウンとラジオボタン形式のみ範囲検索を設定できます。

    範囲の扱い

    投稿年月の場合は、前|以前|以後|後、カスタムフィールドの場合は、未満|以下|以上|超から選択できます。カスタムフィールドの場合は値の種別に応じて数値か文字列かを指定してください(価格=数値、イベント日時=文字列、よみがな=文字列、など)。

    テキスト入力で範囲検索

    チェックを入れると、ドロップダウン/ラジオボタンの代わりにテキストフィールドを表示し、エンドユーザーの任意入力の値で範囲検索することができます。

    カスタムフィールド詳細項目

    単位を付与する

    カスタムフィールドの値で範囲検索できるようにするには、カスタムフィールドの値には記号など含まず、数値のみを登録する必要があります。しかしドロップダウンなど検索パーツ内や検索結果ページに検索条件を表示する際には単位や区切りがあったほうが見やすいため、この機能を使用して補うことができます。設定した単位を値の前部/後部に付加します。おもに価格(1,000円、¥5,000)や重量(1kg、5,000t)などの場面を想定しています。

    3桁ごとに半角カンマで区切る(カスタムフィールド)

    前項のとおり、検索パーツなどに表示する際、カスタムフィールドの数値を3桁ごとに半角カンマで区切りを入れます。

    2つの検索条件を組み合わせて下限〜上限を指定できる範囲検索を設定する

    上記のように2つの検索パーツを組み合わせ、それぞれの範囲の扱いを「以上」と「以下」に設定しすると、下記のような「○○円以上〜○○円以下」という範囲検索が実装できます。version1.8からはテキスト入力だけでなく、ドロップダウン・ラジオボタンでも自由記述により切りの良い値でパーツを構成できるようになり、より実用的な範囲検索になりました。

    「単位」「3桁ごと〜」をしない場合/設定した場合のドロップダウンの見え方の違いを示します。

    Smart Custom Fields 関連

    カスタムフィールドの値を登録する際に便利なプラグインが多数ありますが、当プラグインと互換性がないもの(例:Advanced Custom Fields)もあり注意が必要です。数あるプラグインの中でもSmart Custom Fieldsは多機能で使いやすく、このプラグインを使って登録されたカスタムフィールドの値は当プラグインで検索可能です。いくつか特徴的な機能をもっており、それらに対応するための以下の専用項目を用意しています。

    真偽値

    関連する投稿

    関連するターム

    真偽値として扱う

    「真偽値」に登録された値をそのまま検索パーツに表示すると「1」か「0」と表示されてわかりづらいため、この項目にチェックを入れることにより、それに続く「真の場合の文字列」欄に表示する文字列を設定することで、検索パーツに意味がわかるかたちで表示できます(例:ペット可、キャッシュレス対応)。検索パーツの「条件」には真偽値として設定したカスタムフィールドのキーを指定してください。

    真の場合の文字列

    前項のとおりです。値が「1」=真の場合の文字列を入力してください。例えば「ペット可であるかどうか」で検索させたい場合、このテキスト欄に「ペット可」と入力することで、ラジオボタンの隣に「1」ではなく「ペット可」とわかりやすく表示できます。

    関連する投稿 v1.7.7の新機能

    真偽値と同様、そのままでは記事IDが表示されてわかりづらいため、この項目にチェックを入れることにより、記事IDに基づいて記事タイトルを取得し、記事IDの代わりに表示します。検索パーツの「条件」には関連する投稿として設定したカスタムフィールドのキーを指定してください。

    関連するターム v1.7.7の新機能

    真偽値と同様、そのままではタームIDが表示されてわかりづらいため、この項目にチェックを入れることにより、タームIDに基づいてターム名を取得し、タームIDの代わりに表示します。検索パーツの「条件」には関連するタームとして設定したカスタムフィールドのキーを指定してください。

    キーワード(フリーワード)検索

    検索対象

    キーワード検索時の検索対象(キーワードを探す箇所)を選択します。WordPress標準の検索機能ではタイトルと本文しか検索できませんが、当プラグインでは下記の項目を指定できます。

    1. タイトル (post_title)
    2. 本文 (post_content)
    3. 抜粋 (post_excerpt)
    4. カスタムフィールド (meta_value)
      キー(指定したキーのカスタムフィールド値のみ検索)
    5. コメント (comment_content)
    6. 記事が属するカテゴリ/タグ名 (terms > name)

    何も選択されていない場合は、1,2,4,6が検索対象となります。カスタムフィールドの「キー」は、半角カンマ区切りで複数指定できます。なお、カスタムフィールドのキーワード検索は構造上非常に負荷がかかりますので、不要な場合はチェックを外してください。

      あいまいさ

      全角/半角・ひらがな/カタカナの表記ゆれの扱いを指定します。チェックを付けると半角/全角・ひらがな/カタカナの区別なく検索実行します。

      例)全角で「PHP」と入力

      • チェックあり→ 全角「PHP」半角「PHP」いずれも検索にヒット
      • チェックなし→ 全角「PHP」はヒット、半角「PHP」は検索にヒットせず

      プレースホルダーテキスト

      キーワード入力欄に未入力時に表示するコメントを設定できます。

      設定の保存

      検索パーツの設定を終えたら、左下の「設定を保存」ボタンで保存します。プレビュータブには、設定した内容が実際のデータに基づいて表示されます。
      必要に応じて左下の「項目を追加」ボタンで検索パーツを追加して検索フォームを作り込みます。

      検索フォームを複数作成/管理

      検索フォームは複数作成できます。1つのサイト内…例えば地域ポータルサイト内で店舗検索、イベント検索、求人情報など分野ごとに検索フォームを作成できます。

      • ページ右上のドロップダウンから「新規作成」を選択し「実行」ボタンをクリックします。

        • →新しく作成された検索フォームの編集画面が開きます。
        • →ドロップダウンの内容が(フォームID = 1)に変わっています。
      • 検索フォームを作り込みます。

      検索フォームを削除する

      • 削除したい検索フォームを表示し、ページ右上のドロップダウンから「削除」を選択し「実行」ボタンをクリックします。

      プレビュー

      設定した検索フォームはプレビュータブで見た目と動作を確認できます。実際に検索をすると、適用中のテーマの検索結果ページがフレーム内に表示されます。「前へ戻る」「次へ進む」ボタンで簡易的なナビゲーションができます。「「デザイン」のCSSを適用する」にチェックを入れると 検索 > デザイン に記述したCSSを適用した状態で検索フォームの外観を確認できます。

      コード

      4つ目のタブ「コード」には、完成した検索フォームを設置するためのコード一覧が表示されます。検索フォームを設置するには以下の2つの方法があります。

      1. テーマのテンプレートにFEAS専用のPHP関数を設置
      2. 投稿や固定ページ、テキストウィジェットなどにショートコードで設置

      また、コードには以下の3つの種類があります。

      1. 検索フォームを表示する関数/ショートコード
      2. 記事数を表示する関数/ショートコード
      3. 検索実行後に指定した検索条件(語句)を表示する関数/ショートコード

      「コード」タブにはそれぞれ表示されていますので、必要に応じてコピーして設置したい場所にペーストしてください。設置したら表示が崩れていないか、検索が機能するか動作確認を行ってください。

      具体的な設置例としては以下が考えられます。

      1. 設定 > 表示設定 > フロントページに指定した固定ページ本文欄に検索フォームと記事数の2つのショートコードを設置
      2. 検索結果を表示するテーマのテンプレートはsearch.phpなので、search.phpを開き、ページ上部に検索条件と記事数を表示するPHPの関数を設置
      3. 検索結果ページからさらに絞り込めるように、search.php下部に検索フォームのPHP関数を設置
        1. フロントページに設置した検索フォームと同じフォームIDの検索フォームをsearch.phpに設置すると、ドロップダウンやチェックボックスの状態を引き継ぐことができますので、エンドユーザーはそこからさらに絞り込むことができます。