Maccle

WordPressのアクションフックでadmin_headをadmin.phpなにがしに限定するには?

April 8, 2010
約 3 分


主にWordPress用のプラグインを作成して、WP管理画面にさらにプラグイン専用の設定ページなんてのを用意したいときがある。
GPLとかで配布されているAjax系のJavascriptなどを取り入れてちまちまやっていたが、ここへ来て問題が。。

WordPressのテーマ変更画面では、本来テーマのサムネイルをクリックするとiframeでプレビュー表示してくれるのは周知のことだが、自分の作ったプラグインが有効だと、iframeが無効になってそのページでいきなりプレビュー表示されてしまう。

なんじゃこりゃとFireFoxのエラーコンソールとかFireBugなんかで調べてたら、どうもヘッダーに定義したあるjavascriptの読み込みでエラーが発生していたらしく、テーマ選択ページではその後に読み込まれるはずだったプレビュー用のスクリプトがスルーされてるためにiframe表示ができていなかったらしい。

プラグインで管理画面のHTMLヘッダーには

などとやっていたので、WordPressの管理画面のheader全てに私のプラグインのjavascriptを読み込んでいた。

で、調べてみたところ、アクションフックは「admin_head-」以外にも

admin_head-ページフック名
admin_head-プラグイン管理ページ名
プラグインが生成した管理画面ページのhead要素内で実行する。

なんていうのがあり、ヘッダー内に出力するページを限定できることが分かった。

「プラグイン管理ページ」や「ページフック名」というのが例もなく何とも分かりにくいが、プラグイン専用ページだったら

というように、プラグインディレクトリからのパスを「admin_head-」の後に記述すればいいらしい。

同様に、管理画面の特定のページでは、

のように、「wp-admin」の後の*.phpを記述すればいいらしいが、ここで困った。。

/wp-admin/admin.php のときの指定ができない!!

私のプラグインの場合、管理画面のサイドバーに個別の専用メニューを設けたため、パスは「/wp-admin/admin.php?page=フック名」
となっている。

この場合のページフック名ってどうするんだ?!

About The Author

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

Comments & Trackbacks

  • Comments ( 2 )
  • Trackbacks ( 1 )
  1. add_action(‘admin_head-toplevel_page_ページフック名’, ‘function’);
    でどうですか?

  2. 大変参考にさせて頂きました!

    ところでせっかくなので情報共有です。
    プラグイン管理ページ名ですが、私の環境では『「admin_head-settings_page_」+「プラグインdir名」+「/」+「プラグインファイル名(拡張し無し)」』でした。

    詳しくは コチラに書いておきましたので、よろしければご参照ください。

  1. […] 調べてみると同じような事を考えていらっしゃる方がいた。良かった。方向性は分かった! […]

Leave A Reply

*

Comment On Facebook