WordPressを利用していて、サイト内検索において固定ページが出てしまうことにお困りではないですか?
サイト内検索とは、本サイトでいう以下の検索のことです。
読者さんにとっては情報を調べやすくなる非常に便利な機能です。
一方で、運営者にとっては、本来見せたくない固定ページまでヒットしてしまうのが悩ましいですよね。
本記事では、サイト内検索から固定ページを除外する方法について、ご紹介いたします。
ものの5分もあれば、設定できますよ。
Search Excludeは不具合が発生するように
当初これを行うために、「Search Exclude」というプラグインを利用していました。
しかし、2024年10月から、このプラグインを使っていると記事更新時に不具合が出るように。
そこで、テーマファイル「function.php」に直接書き込む方法にて、固定ページを除外する方法に切り替えることにしました。
この方法なら一つ一つページを指定する必要もなく、一括して固定ページを除外できるから楽ちん♪
サイト内の検索結果から固定ページを除外する方法【WordPress】
function.phpに書き込むコードは、以下の通り。(※コピペ推奨)
function SearchFilter($query) { if ( !is_admin() && $query->is_main_query() && $query->is_search() ) { $query->set( 'post_type', 'post' ); } } add_action( 'pre_get_posts','SearchFilter' );
ここからは、具体的な手順を紹介していきます。
子テーマ「○○_CHILD」のfunction.phpを選択します。
「子テーマって何?まだ子テーマを入れていない!」という方は、こちらを参考にダウンロードしていきましょう。
こちらはSWELLの例
function.phpを開いたら、一番下に上のコードを貼り付けます。
※念のため同じページを別タブでも開いておくことを推奨。万が一エラーが表示されたら、もう一つのほうを上書きすると元通りになります。(※テーマファイルは慎重に触ってください)
最後に、「ファイルを更新」すれば設定完了です!
最後に実際に検索してみて、固定ページがヒットしないかを確認しておこう!
コメント