新しくテーマを作成するにあたって、ローカルに最新版のWordPressをインストールし、いつもどおり構築を始めたのですが、
functions.phpで追加のJSとかを読み込もうとしたら、
Notice: wp_enqueue_script が誤って呼び出されました。スクリプトおよびスタイルは wp_enqueue_scripts、admin_enqueue_scripts、init フック以降のみに登録・キュー追加できます。
詳細は WordPress のデバッグをご覧ください。 (このメッセージはバージョン 3.3 で追加されました)
って怒られました。
いままで見たこと無いメッセージだった(というか今までデバッグモードを知らなくて開発用WPでデバッグモードONにしてなかったから気づかなかったのかも)のですが、調べてみると、3.3あたりから微妙にこのあたりの仕様が変わったようで、
initしてから呼び出さないとだめだよってことらしいです。
なので、initにフックして、
1 2 3 4 5 6 7 8 9 |
function register_user_script() { if (!is_admin()) { $script_directory = get_template_directory_uri(); wp_deregister_script('jquery'); wp_enqueue_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js'); wp_enqueue_script('MyTheme_InitScript',$script_directory.'/init.js',array('jquery')); } } add_action('init','register_user_script'); |
こんな感じにすれば警告はでなくなりました。
参考:http://ja.forums.wordpress.org/topic/8634
[…] >>WordPress 3.4でwp_enqueue_scriptしたら怒られた | NeGiMeMo.net Author: […]