Wordpress

WordPressのサイト内検索で固定ページを検索結果から除外する方法ーfunctions.phpで実装。

サイト内検索をした際に固定ページを除外、投稿のみを検索結果に出す方法をご紹介。 WordPress標準のサイト内検索は「投稿記事」+「固定ページ」が検索範囲のようです。 個人ブログで「お問い合わせ」や「プロフィール」などに利用されている固定ページ。 サイト内で記事を探している時に、問い合わせページなんて検索結果に出さないでほしい!
functions.phpにコードを追加することで、固定ページを検索結果から除外します。

WordPressのサイト内検索は固定ページも検索対象

当サイトでは記述時、管理人プロフィールの詳細として固定ページを利用中です。 暇だったので作りました。
サイト内検索固定ページ除外1固定ページのページタイトルは「管理人プロフィール」として作成しております。
このどうでもいいページがサイト内検索でキーワードに引っかかると表示されるので、固定ページを検索結果から除外するようにします。

サイト内検索固定ページ除外2WordPress標準の検索機能では固定ページも検索対象になる。

固定ページを検索結果に含めないコード

以下のソースコードをfunctions.phpに追記します。書き足す場所はどこでもOK。

//固定ページ検索除外
function my_posy_search($search) {
if(is_search()) {
$search .= " AND post_type = 'post'";
}
return $search;
}
add_filter('posts_search', 'my_posy_search');

サイト内検索固定ページ除外3 functions.phpにソースコードを書き足したら保存します。

サイト内検索での検索範囲が「記事」のみに

サーバー上でコードの保存、更新が終わったら動作確認してみましょう!
先ほどと同じキーワード「管理人プロフィール」で検索してみる。 サイト内検索固定ページ除外4 固定ページである管理人プロフィールの検索結果が0になり、検索結果から固定ページが除外されました!

まとめ

・Wordpress標準のサイト内検索では固定ページも検索対象となる。
・固定ページって検索結果に出す必要ある?そもそもno indexがほとんど...
ということで僕が運営しているサイト全てで検索結果から除外しています。。。

-Wordpress
-

© 2020 ソロ学