WordPress にはカスタムフィールドを使って入力をラクにすることができますけど、1つだけ難点があるんですよね。
それは、デフォルトの「検索」ではひっかからないこと。
どうすれば良いのか記事を探してみると、「Custom Fields Search」というプラグインがよく紹介されていたんですが、今現在はもう配布を中止しています。
だからと言って、自分で頑張って PHP をいじるのも大変ですよね。
私も記事を探してみると大した情報が出てこなかったので、使えるプラグインがないか調べたら見つかりました!
「Relevanssi」の使い方
検索を自由に操れるプラグイン「Relevanssi – A Better Search」は、投稿・固定ページ・タグ・カテゴリーなどに分けて「検索」を有効にしたり無効にしたりが可能となります。


そして、このプラグインは本題である「カスタムフィールド」も検索範囲として設定もできるんです。
カスタムフィールドを有効にする手順
「Relevanssi – A Better Search」を有効にしたら、カスタムフィールドも検索範囲にする設定をする必要があります。
プラグインの設定をクリックしたら、「インデックス」のタブを開きます。
そして、「インデックス」のページから「カスタムフィールド」を探してください。
デフォルトではこの項目が「なし」になっているはずなので、これを「すべて(all)」「目にみえる(visible)」「いくつか(some)」のいずれかを選択して「設定を保存」のボタンを押せば完了。

「すべて(all)」を選択した場合
「すべて(all)」を選択すると、カスタムフィールドに入力された内容が検索の対象となります。
「目にみえる(visible)」を選択した場合
「目にみえる(visible)」を選択すると、カスタムフィールドに入力しただけでは検索対象とならずに、ページで表示された文字だけが対象となります。
「いくつか(some)」を選択した場合
「いくつか(some)」を選択すると入力欄が表示されるので、そこに指定した文字だけが検索対象となって表示されるようになります。
文字が一致かどうかを設定する手順
検索において、入力された文字をどのような状態で対象とするかを設定できます。

条件を満たすか含めるか
「検索」タブを開いたら、「デフォルト演算子」の項目を「OR」か「AND」のどちらかを選択をします。
ここでは「OR」がデフォルトになっていて、「OR」のままなら複数検索された場合でもどちらかに含まれていれば検索対象となります。
「AND」の場合は複数検索されたら、その条件と同じ対象の記事だけが表示されるようになります。
文字を完全一致にするかどうか
同じく「検索」のタブにある「キーワード一致」の項目では、検索された時に完全一致でのみ検索範囲とするとか、部分的に同じであれば対象とするかを選べます。
「部分的な言葉」がオススメとなっていて、これを選択していると部分的に同じであれば検索対象となります。
「単語全体」は完全一致した時だけが対象となるので、よっぽど厳密に対象を分けたいとき以外には使うことはないと思います。
検索結果でフィールドの内容を表示する手順
「カスタムフィールド」で「すべて」「目にみえる」「いくつか」のいずれかを選択すればそれで基本は完了なんですけど、それで検索した場合には通常のエディターに入力された内容だけが「記事の抜粋文」として表示されます。
そこで、もしカスタムフィールドの内容を抜粋部分に表示したい場合には、「抜粋とハイライト」のタブを開いて「抜粋にカスタムフィールドを使用」の項目にチェックを入れます。


それで検索語句を入れるみると、カスタムフィールドに表示されている文字がハイライトされた状態で抜粋が表示されます。
たまに前後で変な文字列がそのまま表示されることもあるので、「スニペットの長さ」で単語数などを調整しても良いと思います。
プラグイン「Relevanssi」 を使ってみよう
カスタムフィールドに関する記事自体があまりない、というか古い記事がやたらと多いのですが、最近は利用する人が少なくなってきているということなんですかね。
ちょっと話がずれましたが、「検索」の設定に関しても古い記事ばかりだったので少しでも情報更新できればと思って記事にしました。
「Relevanssi」の場合はデフォルトの「検索」を使った機能拡張となるので、ECサイトのような値段範囲を設定して検索するような拡張はできません
でも複数検索はできるので、小規模のECサイトでも活用できると思います。