特定の記事を検索結果から除外する

カスタム

wpphp_search_ex

WordPressにはデフォルトで検索フォーム機能がついていますが、
記事同様、固定ページも検索対象なので、検索ワードによってはひっかかってしまいます。
検索できるのは記事だけで十分、という方には少し邪魔ですね。

WordPressは検索結果に関してもカスタマイズができるので、
検索に引っかかってほしくない記事を除外してみましょう。

テーマファイル内の functions.php を用意する

現在使用しているテーマファイル内の functions.php を編集します。
ない場合は同名のファイルを作成します。

検索から除外する記事を指定する

<?php

function fb_search_filter($query)
{
	if ( !$query->is_admin && $query->is_search)
	{
		$query->set('post__not_in', array(1,2,3) ); // 記事ID配列
	}
	return $query;
}

add_filter('pre_get_posts', 'fb_search_filter');

?>

array(1,2,3)には、除外したい記事IDをカンマ区切りで入れます。

これで検索結果には表示されなくなります。
ページIDも指定できるので、特定の固定ページを検索結果に出さないこともできます。

カスタム

関連記事