$hook_suffixを使った条件分岐の仕方(メモ)

公開日:2025(令和7)年10月8日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

管理画面内の特定のページを条件に分岐する際に便利な$hook_suffixについてのメモページです。

主な$hook_suffix一覧

$hook_suffixについては、公式でも特に一覧のようなものは存在しませんので、以下に手作業で抽出した$hook_suffixと、個別ページの$hook_suffixを調べるためのコードを示しておきます。

WordPress標準ページの$hook_suffix

※実際のサイトで画面を1つ1つ確認しましたが、このほかにもページが存在するかも知れません

$hook_suffixのスラグ画面
index.phpダッシュボード
update-core.phpWordPressの更新画面
edit.php投稿・固定ページ・カスタム投稿タイプ・パターン一覧
post-new.php投稿・固定ページ・カスタム投稿タイプ・パターンの新規追加
post.php投稿・固定ページ・カスタム投稿タイプ・パターン・メディアの編集
edit-tags.phpカテゴリー・タグ・カスタムタクソノミー一覧
term.phpカテゴリー・タグ・カスタムタクソノミーの編集画面
upload.phpメディア一覧
media-new.phpメディアのアップロード(新規追加)
edit-comments.phpコメント一覧
comment.phpコメントの編集
themes.phpテーマ一覧とテーマの詳細
theme-install.phpテーマの新規追加
nav-menus.phpメニューの編集
widgets.phpウィジェット設定
plugins.phpプラグイン一覧とプラグインの詳細
plugin-install.phpプラグインの新規追加
update.php更新の確認画面(プラグインだけではないかも)
users.phpユーザー一覧
user-new.phpユーザーを追加
profile.phpプロフィール
tools.phpツール
import.phpインポート
export.phpエクスポート
site-health.phpサイトヘルス
export-personal-data.php個人データのエクスポート
erase-personal-data.php個人データの消去
theme-editor.phpテーマファイルエディター
plugin-editor.phpプラグインファイルエディター
options-general.php一般設定
options-writing.php投稿設定
options-reading.php表示設定
options-discussion.phpディスカッション設定
options-media.phpメディア設定
options-permalink.phpパーマリンク設定
options-privacy.phpプライバシー設定

個別のページの$hook_suffixを調べる

プラグインごとの設定ページなど個別のページは、以下のコードを有効化しているテーマのfunctions.phpへ追加した後に各ページを開くと確認できます(前項の$hook_suffixの一覧もこのコードで調べました)。

/***** hook_suffixを各ページに表示する *****/
function pwcn_print_current_pagehook(){
	global $hook_suffix;
	if( !current_user_can( 'manage_options') ) return;
	echo '<div class="updated"><p>hook_suffix : ' . esc_html($hook_suffix) . '</p></div>';
}
add_action('admin_notices', 'pwcn_print_current_pagehook');

$hook_suffixを使った条件分岐の仕方

実はこちらの公式サイトの検索結果にある通り、直接的にフックに付帯させて条件分岐するフックは多くありませんから、実用としては、以下のような条件分岐を使って判別させるのが適当でしょう。

1つの$hook_suffixに合致するものに対して条件に合致した場合の処理をさせるには、

global $hook_suffix;
if ( '$hook_suffixのスラグ' === $hook_suffix ) {
/*** ここに条件に合致した場合の処理を書く ***/
}

というようにし、2つ以上の場合は「||」(PHPでまたはという意味)で区切って追加すればいいでしょう。

   global $hook_suffix;
    if ( '$hook_suffixのスラグ' === $hook_suffix || '$hook_suffixのスラグ' === $hook_suffix ) {

}

例えば、「index.php(ダッシュボード)」に対してのみスタイルを与えたいといった場合には、以下のようにすればいいでしょう。

function index_php_style_init(){
global $hook_suffix;
if ( 'index.php' === $hook_suffix ) {
?>
<style>
    background:#000;
</style>
<?php
}
}
add_action('admin_head','index_php_style_init');

ちなみに「admin_head」フックには$hook_suffixを付与して処理させることができるので、以下のように書いても同じことなのですが、前述した通り使えるフックが少ないので、上記の書き方で統一すると管理しやすいと思います。

function index_php_style_init(){
?>
<style>
    background:#000;
</style>
<?php
}
add_action('admin_head-index.php','index_php_style_init');
, , , , , ,
Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
CSSをHTMLソースに直接出力する、wp_add_inline_style()の使い方