wpカスタマイズ 2014-10-05

WordPress 検索結果に固定ページや特定のカテゴリーを除外するカスタマイズ

search-filter

WordPressのデフォルト検索結果では、固定ページなども検索の対象となり検索結果に表示されてしまいます。
そこで今回は、固定ページや特定のカテゴリーなどを検索の対象外にしたいと思います。
プラグインなどもありますが、プラグインを使うほどもないかなと思って。

下記コードを、functions.phpに貼り付けてください。

固定ページを検索対象から除外

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

固定ページを除外しカスタム投稿を含める場合

/*-------------------------------------------*/
/*  検索結果から固定ページを除外しカスタム投稿名は含める
/*-------------------------------------------*/
function SearchFilter($query) {
	if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
		$query->set('post_type', array('post','カスタム投稿名'));
		$query->set('posts_per_page', 10);
	}
	return $query;
}
add_filter('pre_get_posts','SearchFilter');

特定のカテゴリーを除外

/*-------------------------------------------*/
/*  検索結果から特定のカテゴリーを除外
/*-------------------------------------------*/
function SearchFilter($query) {
	if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
        $query->set('category__not_in', array(1,2));//カテゴリーIDを指定
	}
	return $query;
}
add_filter('pre_get_posts','SearchFilter');

特定の投稿を除外

/*-------------------------------------------*/
/*  検索結果から特定の投稿を除外
/*-------------------------------------------*/
function SearchFilter($query) {
	if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
        $query->set('post__not_in', array(1,2));
	}
	return $query;
}
add_filter('pre_get_posts','SearchFilter');

オススメ書籍

こちらの記事をシェアする

こちらの記事があなたのお役にたちましたら、シェアしていただけますと大変嬉しく今後のブログ更新の糧となりますのでどうぞよろしくお願いします。(^^♪

About

Glow-Facotryでは、無料・有料のWPテーマを配布・販売サイトです。また、Web関連やWPの記事・日常的(ゲームも)なことをブログを利用して発信して行きたいと思っております。
よかったら下記のフォローをお気軽にお願いします。

関連記事

コメント

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PREVIOUS yoyaku

【WordPress】 管理画面の投稿一覧で下書き・予約投稿に背景色を付ける

NEXT user-limt

【WordPress】 ユーザー名を指定して管理画面のメニュー項目を制限する