WordPressサイトのサイト内検索に関する「ちょっとしたお悩み」を解消しましょう!
WEBサイトを運営していると、「サイト内検索の結果に、固定ページ(会社概要やプライバシーポリシーなど)は表示したくない」というニーズが出てくることがあります。
初期設定では「投稿記事(ブログ)」と「固定ページ」の両方が検索対象に含まれるので、検索をブログ記事に限定したい場合は、ひと手間加える必要があるのです。
この記事では、WordPressの検索結果から固定ページを確実に除外する具体的な方法を解説しますので、ぜひ参考にしてください!
なぜ固定ページを除外すべきなのか?検索の「質」を高める理由
サイト内検索は、ユーザーが求める情報に直結するための重要なナビゲーション機能です。この検索結果の「質」が低いと、ユーザーはすぐに離脱してしまいます。主な除外の理由は以下の通りです。
ユーザー体験の向上 (UX改善)
ほとんどのユーザーは、サイト内検索で具体的な情報や最新のブログ記事を探しています。「会社概要」や「お問い合わせ」といった静的な固定ページは通常、グローバルメニューなどからアクセスされます。検索結果にこれらが混ざると、求めている情報を見つけにくくなり、UXは低下するでしょう。
「投稿」記事の重要性強調
ブログ形式で情報を発信しているサイトでは、「投稿(Post)」記事こそがメインコンテンツ。検索結果を「投稿」のみに限定することで、ユーザーは本当に読みたい記事へ最短で到達できるようになります。
結果のノイズ除去
カスタム投稿タイプを多く使っているサイトでは、検索対象を制限しないと、意図しない種類のコンテンツまで検索結果に表示される「ノイズ」が発生しがちです。クライアントワークでは、「ブログ記事を検索したいのに、会社概要が出てきて邪魔」という要望は鉄板ですね。最初から検索対象を絞り込むのは、きめ細やかなディレクションの第一歩だと心得ましょう。
functions.phpで固定ページを検索から除外する確実なコード
WordPressで検索対象を変更するには、テーマディレクトリにある functions.php にフック(Hook)を利用したカスタム関数を追記するのが最も標準的で柔軟な方法です。ここでは、WordPressの検索処理の直前で動作する
pre_get_postsアクションフックを用います。①functions.phpに追加するコード
以下のコードを、ご利用の子テーマのfunctions.phpファイルの末尾に追加してください。|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/ * サイト内検索の対象を「投稿記事 (post)」のみに制限する * * 検索処理が実行される前に$queryオブジェクトを操作する * * @param WP_Query $query 検索クエリオブジェクト * @return WP_Query 変更後のクエリオブジェクト */ function restrict_search_to_posts_only( $query ) { // 管理画面での操作や、メインクエリではない場合は処理を中断 if ( is_admin() || ! $query->is_main_query() ) { return $query; } // サイト内検索ページでのみ実行 if ( $query->is_search() ) { // 'post_type' を 'post'(投稿)に設定 // 固定ページ('page')やカスタム投稿タイプは除外される $query->set( 'post_type', 'post' ); } return $query; } add_action( 'pre_get_posts', 'restrict_search_to_posts_only' ); |
より簡単な選択肢:プラグインやテーマ側の設定も検討する
「functions.phpを直接編集するのは、正直、ちょっと怖い」というWEBデザイナーの方もいるかもしれませんね。万が一のPHPエラーでサイトが真っ白になるのは、誰もが避けたい事態です。最近のテーマやプラグインには、もっとGUI(グラフィカルユーザーインターフェース)で簡単に設定できるオプションが増えています。
①テーマのカスタマイズ機能を利用する
高性能なテーマ(例:有料テーマや有名フレームワーク)の中には、テーマオプションやカスタマイザー内で検索対象とする投稿タイプを選択できる機能が備わっているケースがあります。②検索特化のプラグインを利用する
サイトの規模が大きく、より高度な検索機能を求めている場合は、検索に特化したプラグインを導入するのが最善策となります。| プラグイン名 | 特徴とメリット |
|---|---|
| SearchWP (有料) | 非常に強力。検索対象の投稿タイプ、カスタムフィールド、PDFなどのファイルを細かく指定でき、検索精度を大幅に向上させる。 |
| Relevanssi (無料版あり) | WordPressの標準検索を強化し、部分一致、AND/OR検索、ウェイト調整など、多機能な設定が可能。 |
シンプルに固定ページを除外するだけなら、functions.phpへのコード追記が最も軽量かつ標準的な解決策です。
しかし、今後カスタム投稿タイプが増えたり、検索機能の強化が予想されるなら、SearchWPのようなプロ仕様のプラグイン導入をクライアントに提案するのが、将来を見据えた提案になります。


コメント