WordPressのデバッグモードで動作確認中に管理画面を開くとこんなエラーが。
Notice: wp_deregister_script が誤って呼び出されました。管理画面では jquery スクリプトの読み込みをオフにしないでください。フロントエンドテーマだけをターゲットにするには、wp_enqueue_scripts フックを使いましょう。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 3.6.0 で追加されました) in /Applications/MAMP/htdocs/wp-includes/functions.php on line 4161
結論からいうとテーマ内のfunctions.phpとかで管理画面ではWordPressのjQueryを。そうじゃない画面では指定のjQueryを呼び出す記述。
その記述の一部が原因になっているのでそこを変更すれば良いって話です。
原因はこちら。
//エラーになる例
//この場合は9行目のinitが原因
function load_script(){
if (!is_admin()){
wp_deregister_script('jquery');
wp_enqueue_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js', array());
}
}
add_action('init', 'load_script');
これを以下のように書き換える。
エラーメッセージにも書いてますが、「wp_enqueue_scripts」のフックを使います。
//管理画面以外で指定したバージョンのjQueryを呼び出す
function load_script(){
if (!is_admin()){
wp_deregister_script('jquery');
wp_enqueue_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js', array());
}
}
add_action('wp_enqueue_scripts', 'load_script');
これで管理画面と表側のjQueryをエラーを出さず出し分けられます。
wp-includes内のファイルがエラーですよー。。。こういう時ってエラーで指定されているファイルじゃなくててテーマ内のfunctions.phpの記述が原因だったりするんですよね。
なので、最近は素直にエラーメッセージを受け取らないっていうひねくれた考え方になってきました。