サイト内検索フォームは、ユーザーが素早くコンテンツを探し出すためになくてはならないもの。特にコンテンツが多いサイトほど、サイト内検索は役割を発揮します。カテゴリーやタグではカバーできないところをフォローする「最後の砦」と言ってもいいでしょう。

ところで、WordPressでデフォルトのサイト内検索の検索対象を考えたことはありますか?かくいう筆者も曖昧にしか把握しておらず、「投稿」と「固定ページ」内の記事タイトルと本文だけが対象と思い込んでおりましたが、よく調べると違っていました(仕様変更?)。

ということで、本稿では自身のメモ代わりとしての投稿とはなりますが、WordPressの検索対象に興味がある人の参考に少しでもなれば幸いです。

WordPressのサイト内検索の特徴

検索対象のフィールド

WordPressのサイト内検索の対象となるのは、次のフィールドです。

サイト内検索の検索対象:

  • 記事タイトル
  • 記事本文
  • 抜粋文

参考: WP_Query::parse_search() – Method | Developer.WordPress.org

一般的に対象フィールドは、記事タイトルと記事本文と言われてますが、ソースをみると抜粋文も含まれるようです。以下は検索対象に含まれません。

検索対象外:

  • コメント
  • トラックバック
  • カテゴリー
  • タグ
  • 投稿者名
  • カスタムフィールド

検索対象の投稿タイプ

公式ソースをみると、デフォルトではすべての投稿タイプが検索対象でした。

検索対象の投稿タイプ:

  • すべて(any)
  • ※フロントにページを生成するカスタム投稿に限定
  • ※カスタム投稿登録時に検索結果から除外する設定にしていると含まれない

参考: WP_Query::parse_query() – Method | Developer.WordPress.org

カスタム投稿タイプもWooCommerceの商品ページも検索対象に含まれます。

検索対象を変えるには?

検索対象がすべての投稿タイプを含むということは、様々な投稿タイプが並列に検索結果ページに表示されるということであって、ユーザーの混乱を招きかねません。

カスタム投稿タイプでよく使われている「お知らせ」「よくある質問」といったページも並列に検索結果に並ぶことになるからです。

検索結果ページ

CANONの検索結果ページ

ですから、「この投稿タイプだけは検索対象から外したい」という要望も出てきます。

TCDテーマの場合は、TCDテーマオプションの下記から投稿タイプごとの表示非表示選択が可能です(非対応テーマあり)。

基本設定 > 404・検索結果ページ > 検索結果ページ

TCDテーマの検索対象管理機能

TCDの検索結果管理機能

では、検索結果の管理機能がないWordPressテーマはどうすればいいのか。「WP Extended Search」というプラグインがありました。

検索結果の対象を絞ることができます。

サイト内検索の作り方とカスタマイズ

その他にも検索フォームをカスタマイズする方法は色々あって、プラグインがそれをサポートしてくれます。この記事で検索フォーム系のプラグインをいくつも紹介しているので、必要なものがあるか確認してみてください。

また、開発者向けの記事になりますが、検索フォームを自作する方法も解説しています。

解説は以上となります。それでは素敵なWordPressライフを。