loader image

WordPressの検索結果から固定ページを除外する方法【カスタム投稿の検索に影響しない方法も】

こんにちは、今回はWordPressの検索結果から固定ページを除外する方法をご紹介したいと思います。
いくつか考えられる方法があると思うので、皆様の都合に合わせて解決策を探してみてください。

サンプルコードも用意したのでご自由にお使いください。

ではさっそくいきましょう。

例1 : 検索結果から固定ページを除外する

サンプルコード

//検索結果
function exclude_pages_from_search( $query ) {
    if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
        $query->set( 'post_type', 'post' ); // 固定ページを検索結果から除外
    }
}
add_action( 'pre_get_posts', 'exclude_pages_from_search' );

解説

こちらはexclude_pages_from_searchを使って$query->is_main_queryで条件分岐してpost(固定ページ)を除外しています。

このコードのいいところはHikakuSiteBuilderを含むカスタム投稿用に別途設置した検索フォームは影響を受けないということです。

例2 : 検索結果を投稿ページのみにする

サンプルコード

function SearchFilter( $query ) {
	if ( $query -> is_search ) {
		$query -> set( 'post_type', 'post' );
	}
	return $query;
}
add_filter( 'pre_get_posts', 'SearchFilter' );

解説

こちらは先ほど紹介したコードと異なり、検索結果を投稿のみにするコードです。

通常のブログサイトなどではこれで問題ありませんが、カスタム投稿用の検索フォームを設置している場合、そちらの検索フォームも検索結果を投稿のみにしてしまう場合があります。

まとめ

いかがでしたでしょうか。

検索結果を投稿ページのみにする方法はよく紹介されているのですが、検索結果から固定ページを除外する方法はあまり見かけなかったので紹介してみました。

皆様のご参考になればと思います。

集客できるホームページを私たちと作りませんか?😊

ホームページ制作やWEB集客に何かお悩みをお持ちでしたら、お気軽にお問い合わせください。👌

今はまだ発注するか決めていなてもまったく問題ありません。🙆

戻る

こちらもおすすめです