YouTube | Facebook | X(Twitter) | RSS

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

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');
  • この記事を書いた人

羽田 康祐

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

-Web