管理画面を表示している時もしくはそうでない時を判断する場合に利用される is_admin()
関数について分かりやすく紹介していきます。
is_admin() 関数とは
現在のリクエスト(どのページを表示してくださいよー!というリクエスト)が管理画面ページ( /wp-admin/
以下すべて)に対するものであるかどうかを判断します。
たまに勘違いしてしまうこともあるかと思いますが、これはユーザーが管理者権限かどうかをチェックするわけではありません。ユーザーの権限レベルをチェックするには current_user_can()
関数を使います。
また、カスタマイザーも管理画面内だろうと考えることも多いと思いますが、カスタマイザーを表示しているかどうか判断する関数は is_customize_preview()
になります。したがって、カスタマイザーを表示している際には、is_admin()
は false
を返します。
加えて、ブロックエディターを表示している際には is_admin()
は true
を返します。
このように、管理画面内だと思っていても挙動に違いがある場合があるので、注意しておくと良いでしょう。
似たような関数としては、このようなものがあります。
is_blog_admin()
:ブログ管理者ページ(ユーザー管理画面・ネットワーク管理画面以外の/wp-admin
ディレクトリのページ)かどうか調べるis_network_admin()
:ネットワーク管理者ページ(/wp-admin/network/
ディレクトリ内)かどうか調べるis_user_admin()
:ユーザー管理者ページ(/wp-admin/user/
ディレクトリ内)かどうか調べる
使い方
is_admin()
単体で使う場合であれば、シンプルにこのような使い方になるかと思います。
if ( ! is_admin() ) {
echo "<p style='text-align: center;'>ここは is_admin() は false です。</p>";
} else {
echo "<p style='text-align: center;'>ここは is_admin() は true です。</p>";
}
そして、WordPress のさまざまな関数や箇所で利用されています。興味のある方はこちらも参照してみてください。
まとめ
/wp-admin/
以下すべてで分岐するのですが、特定のページでは最適な分岐方法や条件が変わってくるので少し注意が必要ですね。
さまざまなケースで最適な条件分岐は変わってくると思うので、色々な条件や環境に最適なものを都度調べて考えていく必要がありますね。