web-dev-qa-db-ja.com

wp_enqueue_scriptが誤って呼び出されました

私は方法がわからないが、今私はこのエラーを受けています:

Notice:wp_enqueue_styleが誤って呼び出されました。スクリプトとスタイルは、wp_enqueue_scripts、admin_enqueue_scripts、またはlogin_enqueue_scriptsがフックされるまで登録またはキューに入れないでください。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージはバージョン3.3で追加されました。)行3049のwp-includes/functions.phpに

Notice:wp_enqueue_scriptが誤って呼び出されました。スクリプトとスタイルは、wp_enqueue_scripts、admin_enqueue_scripts、またはlogin_enqueue_scriptsがフックされるまで登録またはキューに入れないでください。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージはバージョン3.3で追加されました。)行3049のwp-includes/functions.phpに

Warning:ヘッダ情報は変更できません - すでに415行目のwp-login.phpの(wp-includes/functions.phpで開始された出力:3049)によって送信されたヘッダ

Warning:ヘッダ情報は変更できません - すでに427行目のwp-login.phpの(wp-includes/functions.phpで開始された出力:3049)によって送信されたヘッダ。

これは私がログインしようとしたときに得られるものです...他のサイトでは、私は2つだけの最初のエラーがあります。修正しようとしましたができません。助言がありますか?

16
raiden

すべてのプラグインを無効にしてデフォルトのテーマに切り替えます。今は消えているはずです。

その後、問題が再発するまで、各アドオンを段階的に有効にします。あなたは今ソースを知っています、プラグインを言いましょう。

このプラグインはおそらくwp_enqueue_scriptを早く呼び出します。その関数の出現箇所をすべて見つけて、それらが特定のアクションにバインドされていることを確認します。

  • wp_register_script()はアクションのために呼ばれるべきですwp_loaded
  • アクションの1つについてのwp_enqueue_script
    • wp_enqueue_scripts
    • admin_enqueue_scripts
    • customize_controls_enqueue_scriptsまたは
    • login_enqueue_scriptsこのスレッド 後者を参照).
13
fuxia

Gregory Schultzの solutionに基づく。

すべてのスクリプトとスタイルを関数にラップして、その関数をターゲットのenqueueアクションにフックします。 ????

function my_admin_scripts() {
  wp_enqueue_style( 'admin-css', get_stylesheet_directory_uri() . '/admin/css/admin.css' );
  wp_enqueue_script( 'admin-js', get_stylesheet_directory_uri() . '/admin/js/admin.js', true );
}
add_action( 'admin_enqueue_scripts', 'my_admin_scripts' );

wp_enqueue_scripts - フロントエンド

admin_enqueue_scripts - 管理ページ

login_enqueue_scripts - ログインページ

3
myk

これが起こっているのは、これらの関数が関数を使わずにfunctions.phpファイルから直接呼び出されているからです。 functions.phpのどの行がこのような関数の内側にないかを調べて、それらを追加してください。

日付ピッカーの例:

functions.phpではこれの代わりに:

wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');

- これを追加

 //関数を定義します。
関数MYTHEME_scripts(){
 wp_enqueue_script( 'jquery-ui-datepicker'); 
} 
 [ // WPロードリストに関数を追加する
 add_action( 'wp_enqueue_scripts'、 'MYTHEME_scripts'); 
 
 function MYTHEME_styles(){[ wp_enqueue_style( 'jquery-ui-css'、 '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css') ;
 wp_enqueue_style(' jquery -ui-css '、' //ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
} 
 
 // // WPロードリストに関数を追加する
 add_action( 'wp_enqueue_style'、 'MYTHEME_styles'); 

うまくいけば

2
Albert Sauqué

これは、フロントエンドの場合はwp_enqueue_scripts、ログイン画面の場合はlogin_enqueue_scripts、管理ダッシュボードの場合はadmin_enqueue_scriptsであるwp_enqueue_script()の3つの「エンドポイント」があることを意味します。 このリンクをチェックしてください

wp_enqueue_script()が正しく呼び出されていないため、このエラーが発生します。

1
JMau

すべてのプラグインを1つずつ無効にしたり、コードベースを変更してデバッグするのではなく、 Query Monitor プラグインを使用してこのエラーの原因を絞り込むことができます。

コンソールにこのエラーが報告されているのがわかります。

wp_register_styleが誤って呼び出されました。スクリプトとスタイルは、wp_enqueue_scripts、admin_enqueue_scripts、またはlogin_enqueue_scriptsがフックされるまで登録またはキューに入れないでください。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージはバージョン3.3.0で追加されました。)

最後の列(Component)はエラーを引き起こしているプラ​​グインを教えてくれます。そこから問題を見つけてパッチを当てるためにそのプラグイン(またはテーマ)の内側を検索してください。

1
Kevin Leary