2016年10月04日WordPressでカスタムタクソノミーも対象とするオリジナルキーワード検索の作り方WordPressのキーワード検索は通常、投稿や固定ページの「タイトル」と「コンテンツ(本文)」を検索対象とします。タイトルまたはコンテンツに検索キーワードを含む投稿や固定ページを検索結果一覧に表示します。表題のように、検索対象にカスタムタクソノミーを含める場合、カスタマイズが必要です。今回は、検索機能そのものをカスタマイズする方法ではなく、オリジナルで検索ページ(検索バー)と検索結果ページを作成する方法を紹介します。WordPressで検索バーをオリジナルで作成ある固定ページにオリジナルの検索バーを設置し、ある固定ページで検索結果を表示します。ここで検索バーを設置するページを「検索ページ」、検索結果を表示するページを「結果ページ」とします。検索ページに検索バーを設置するコードは以下の通り。value="検索"></form>するとこんな感じの検索バーが表示されます。これを受けて結果ページで検索結果を表示するコードは以下の通り。?></a><?phpendwhile;wp_reset_postdata();?>上記では検索キーワードを「タイトル」または「コンテンツ」に含む投稿が表示されます。これはWordPressの通常の検索機能と同様の仕様ですのでわざわざオリジナルで作る必要はありません。投稿の「タイトル」「コンテンツ」のみでなく「カスタムタクソノミー」も検索対象に含める場合、下記のカスタマイズが必要です。変更するのは結果ページの、検索機能の条件部分です。(カスタムタクソノミーは例として「size」「color」とします。?></a><?phpendwhile;wp_reset_postdata();?>何をやっているかというと、通常の検索($q1)とカスタムタクソノミーの検索($q2)をそれぞれ別々に行い、結果を統合し一覧として表示しています。そんなことしなくても検索用条件で両方指定すればいいじゃん!と思うかもしれませんがそれではうまくいきませんでした。WP_Query($query);?>この【悪い例】の方がすっきりしていてぱっと見いい感じなのですが、全然ダメダメです。上記の方法ですと、検索キーワードが「タイトルまたはコンテンツに含まれ、さらに”size”または”color”に含まれる」投稿のみを表示します。“color”))」といった具合です。この記事を読んでいる皆様が実現したいのは、検索キーワードが「タイトルまたはコンテンツ、または”size”、”color”のいずれかに含まれる」投稿を表示。“color”)」といった具合です。上記カスタマイズでは、一つの検索バーで「タイトル、コンテンツ、”size”、”color”」を対象としたキーワード検索が実装可能です。少々わかりにくいですが、他のやり方としてSQLを作成する方法等がありましたが、比較的上記の方がわかりやすいので今回ご紹介しました。