WordPress:管理画面の各ページのbodyに任意のclassを追加する方法

WordPress:管理画面の各ページのbodyに任意のclassを追加する方法

WordPressで管理画面のbodyに任意のclassを追加する方法です。
CSSを使って管理画面のデザインを大幅に変えたいときなど、デフォルトでも様々な要素にclassが指定されているのでそれらを用いてもいいですが、ページ毎に大きく異なる形にしたいとかユニークのclassがほしいというときに使えます。

管理画面の全ページに特定のclassを追加

特定のclassを全ページに追加する方法で、実装にはfunctions.phpに下記を記述します。
下記をそのまま使用した場合は、管理画面の全ページに.my-admin-classというclass名が付与され、他のものにしたい場合はハイライト部分を任意のものに変更してください。

functions.php

add_filter( 'admin_body_class', 'add_admin_body_class' );
function add_admin_body_class( $classes ) {
  $classes .= 'my-admin-class';
  return $classes;
}

管理画面の一覧・投稿画面に、投稿タイプ名を付けたclassを追加

こちらは各投稿タイプの一覧や投稿画面に「任意の文字列+投稿タイプ名」といったclassが付与されるようにするものです。
例えば、下記をfunctions.phpに記述して「news」という投稿タイプの一覧や投稿画面を確認すると、.my-admin-class-newsというclassが付与されます。

functions.php

add_filter( 'admin_body_class', 'add_admin_body_class' );
function add_admin_body_class( $classes ) {
  $screen = get_current_screen();
  if ( $screen->base == 'edit' || $screen->base == 'post' ) {
    $classes .= 'my-admin-class-' . $screen->post_type;
  }
  return $classes;
}

今回は各投稿タイプの一覧と投稿画面を指定する方法でしたが、条件や$classesの値を変更したり増やしていけば、その他のページでも同じように任意のclassを追加することができます。

Close the search window,
please press close button or esc key.