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

   

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');

 - Web