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