ようこそのお運びで、厚く御礼申し上げます。
66日目です。今回は、プラグインの作成ではなくプラグインを作る上でCSSを書くときに必要かなー。
ということを書いてみます。
2014.3.26更新:admin_print_stylesはあまり使わない方が良い。
参照元:WordPress Codex:admin_print_stylesにも書いていますが、安全上あまり使わない方が良さそうです。代わりにadmin_enqueue_scriptsを使います。
新たに使い方を書いたので、こちらの記事を参照してください。
※admin_print_stylesの使い方についてのこの記事は残しておきます。
function.phpやプラグインファイルにスタイルシート(CSS)を書いて、管理画面にスタイルシート(CSS)を設定してみる。
管理画面でスタイルシートを使ってみます。今回は、外部スタイルシートではなく、直接ヘッダーに書き出す埋め込み式を、例に書いてみます。
※今回はtipsなので詳しく知りたい方は、admin_print_stylesやadmin_print_scriptsを調べてくださいね。
まずは、functions.phpに書いてみます。
では、functions.phpに書いてみます。
プラグインファイルでも同じなので、今回はそのまま仕えるような感じで書く・・・努力をします。
admin_print_stylesをアクションフックして書いていきます。
add_action('admin_print_styles', '自分で作成した関数');
サンプルの目次
今回、紹介するサンプルのレジュメです。
- 管理画面全体にスタイルシート(CSS)を埋め込む
- 管理画面で「特定のページ」にスタイルシート(CSS)を埋め込む
- {$hook_suffix}を調べたいけど・・・という場合
- 管理画面の「自分で作成したメニュー」ページにスタイルシート(CSS)を埋め込む
- 「自分で作成したメニュー」ページのクラス全体を書いてみます。
管理画面全体にスタイルシート(CSS)を埋め込む
add_action('admin_print_styles', 'paka3_admin_css');
function paka3_admin_css() {
echo <<< EOS
<style type="text/css"><!--
body{background:#f00}; -->
EOS;
}
管理画面で「特定のページ」にスタイルシート(CSS)を埋め込む
admin_print_styles-{$hook_suffix}というようにフックします。
例えば、「新規追加画面」と「編集画面」だけCSSを設定する場合は
//ページ毎にスタイルを変える
//新規
add_action('admin_print_styles-post-new.php', 'paka3_admin_css2');
//編集
add_action('admin_print_styles-post.php', 'paka3_admin_css2');
function paka3_admin_css2() {
echo <<< EOS
<style type="text/css">
body{background:#f00};
--></style>
EOS;
}
また「ダッシュボード」にだけCSSを設定する場合は
add_action('admin_print_styles-index.php', 'paka3_admin_css2');
function paka3_admin_css2() {
echo <<< EOS
<style type="text/css"><!--
body{background:#f00};
--></style>
EOS;
}
{$hook_suffix}を調べたいけど・・・という場合
以下のコードをfunction.phpに記入して管理画面を見てください。
//$hook_suffixを画面に表示
add_action( 'admin_notices', 'wps_print_admin_pagehook');
function wps_print_admin_pagehook(){
global $hook_suffix;
if( !current_user_can( 'manage_options') )
return;
echo <<< EOS
<div class="error">
hook_suffix =
<b style="color: red;">{$hook_suffix}</b></div>
EOS;
}
実行結果:管理画面を見てみると

「admin_print_styles-post-new.php」という感じで、
赤い文字で表示している部分をコピペしてあげてください。
ちょっと雑かもしれませんが、まずはこれで確認してみてください。
管理画面の「自分で作成したメニュー」ページにスタイルシート(CSS)を埋め込む
こちらはそのまま、アクションフックですね。
自分で作成した関数にはCSSを出力(echo)してあげます。
以下のようにadd_submenu_pageやadd_menu_pageの「返り値」を「admin_print_styles-{$hook_suffix}」にあてはめます。
$page = add_submenu_page("options-general.php", ・・・・);
add_action( 'admin_print_styles-'.$page,array($this,'paka3_post_css'));
「自分で作成したメニュー」ページのクラス全体を書いてみます。
実際に簡単なクラスを書いてみます
new Paka3_Admin;
class Paka3_Admin{
function __construct() {
//管理メニュー
add_action('admin_menu', array($this, 'adminAddMenu'));
}
//管理メニューの設定と分岐
function adminAddMenu() {
$page = add_submenu_page("options-general.php", '自メ', '自作メニューだよー', 'edit_themes', 'paka3hoge', array($this,'paka3_page'));
add_action( 'admin_print_styles-'.$page,array($this,'paka3_post_css'));
}
//出力
function paka3_page() {
echo <<< EOS
<div class="paka3class">
ここにメッセージを書いたよ。
</div>
EOS;
}
//適用するCSSを定義
function paka3_post_css($headers){
echo <<<EOS
<style type="text/css">
div.paka3class{
padding:30pt 0;margin:30pt 0;
background :#999;color:#eee;
}
</style>
EOS;
}
}
今回のまとめ
簡単なコードを書いているとスタイルシートを別ファイルにするのがちょっと面倒だったので、今回は私の使い勝手も含めこの記事を書いてみました。意外とハマる部分でもあるのでメモ書きは必要ですね。
2014.3.26更新:admin_print_stylesはあまり使わない方が良い。
参照元:WordPress Codex:admin_print_stylesにも書いていますが、安全上あまり使わない方が良さそうです。代わりにadmin_enqueue_scriptsを使います。
新たに使い方を書いたので、こちらの記事を参照してください。