【WordPress】管理画面の条件分岐・判定(if文)【WP】

投稿日:

【WordPress】管理画面の条件分岐・判定(if文)【WP】

ルナリス

ルナリス

今回は管理画面の各ページを判定する方法を解説するわ


よろしくお願いします!

ソルト

ソルト

今回はWordPressの各管理画面を判定する方法を解説します。
管理画面をカスタマイズしたい方は参考にして下さい。

管理画面全体の判定

if( is_admin() ){
	//処理
}

ルナリス

ルナリス

「is_admin()」で管理画面かどうかを判定できるわ


ルナリス

ルナリス

でもこれだけだと管理画面のどのページか判定ができないわ

管理画面、各ページの判定

global変数の「$pagenow」を取得することで、管理画面のどのページにいるか判定することができます。
今回は例として投稿編集画面の判定を行います。

if( is_admin() ){
	global $pagenow;
	if( $pagenow == 'post.php' ){
		//処理
	}
}

 

 
3行目のpost.phpをそれぞれ好きなページに変えることで各ページの判定をすることができます。

ページリスト

主なページリストを記載しますので参考にして下さい。
良くわからなかったら管理画面のURLを確認すると良いです。
 

 

$pagenowの値 ページの種類
index.php ダッシュボード
post.php 投稿、固定ページ編集画面
post-new.php 新規投稿画面
edit.php 投稿一覧
edit-tags.php カテゴリ・タグ編集
upload.php メディア一覧
media-new.php メディアアップロード
profile.php プロフィール
tools.php ツール
options-general.php 設定
wp-login.php ログイン
admin.php プラグインやテーマで拡張したページ

URLから判定

URLから更に細かく判定することが可能です。
上の処理で判定し、さらにURLで細分化すると良いです。
 

 
・カテゴリー編集ページとタグ編集ページを判定する例

if( is_admin() ){
	global $pagenow;
	$request_uri = $_SERVER['REQUEST_URI'];

	//カテゴリ・タグ編集ページ
	if( $pagenow == 'edit-tags.php' ){
		//カテゴリーの処理
		if( strpos($request_uri,'taxonomy=category') !== false ){
		  
		}
		//タグの処理
		if( strpos($request_uri,'taxonomy=post_tag') !== false ){
		  
		}
	}
}

簡単な解説

URLの?taxonomy=categoryなどはパラメータと呼び、WordPressの管理画面でも使用されています。
そこでパラメータを取得して、「category」が含まれていたらカテゴリーページ、「post_tag」が含まれていたらタグページ。
といったように判定することができます。
 

 
つまり、URLを確認してif文を書くことで様々なページに対応できます。

まとめ

今回は管理画面の条件分岐・判定を解説しました。
管理画面のカスタマイズの際に参考にして下さい。

ルナリス

ルナリス

管理画面を超改造よ!

参考サイト

WordPress私的マニュアル $pagenow

コメント一覧

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です