サカグチデザインオフィス

ブログBlog

WordPressのサイト内検索で特定の記事を表示させない

2013.09.01更新

WordPressのサイト内検索で特定の記事を検索結果に表示させないようにする方法です。

functions.phpに下記を記述します。

function SearchFilter($query) {
	if (!is_admin() && $query->is_main_query() && $query->is_search()) {
		$query->set('post__not_in', array(記事ID, 記事ID, 記事ID));
	}
	return $query;
}
add_action('pre_get_posts','SearchFilter');

表示させたくない記事IDをカンマで区切って入れます。
(記事IDというのは管理画面から該当ページの「編集」をクリックした後のページでURLに付いている「?post=」の後にある数字です。)

「post__not_in」を「category__not_in」に変えれば表示させたくないカテゴリーにすることも出来ます。

下記ページに詳しくあります。
プラグイン API/アクションフック一覧/pre get posts