is_admin() – 管理画面を表示しているかどうか判断する関数

投稿日 :

カテゴリー :

管理画面を表示している時もしくはそうでない時を判断する場合に利用される 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/ 以下すべてで分岐するのですが、特定のページでは最適な分岐方法や条件が変わってくるので少し注意が必要ですね。

さまざまなケースで最適な条件分岐は変わってくると思うので、色々な条件や環境に最適なものを都度調べて考えていく必要がありますね。

コーディングや
WordPress開発のリソースが足りない!

オレインデザインでは、デザインデータからの HTML コーディングから WordPress テーマ・プラグイン開発まで幅広くウェブ制作に対応しています。

お気軽にお問い合わせください。

WordPress 6.5.x 対応版を出版しました

WordPress デフォルトテーマ Twenty Twenty-Four を使って、シンプルなブログやポートフォリオサイト、そしてコーポレートサイトを作りながら、ブロックテーマやサイトエディターの基本を理解することができます。