YouTube | Facebook | Twitter  Feed

ユーザ レベルによって検索結果を除外する方法

WordPress のログイン レベルによって検索対象から除外するページを分ける方法。function.php に以下のコードを追加。

function wingfield_SearchFilter($query) {
	global $user_level;

	if ($query->is_search) {
			$exclude_all = array(1,2,3,4,5,6); //PostIDs
			$exclude_different = array(1,2,3); //PostIDs

			//権限:未ログイン
			if($user_level == 0){
				$query->set('post__not_in',$exclude_all);
			}
			//権限:ログイン済み
			elseif($user_level > 0){
				$query->set('post__not_in', $exclude_different);
			}
	}
	return $query;
}
add_filter('pre_get_posts','wingfield_SearchFilter');

関連記事

  • この記事を書いた人

羽田 康祐

Twitter#一日一図法を連載中。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、元PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、青山学院大学非常勤講師を兼務。発言は個人の見解です。

-Web