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


20

方法はわかりませんが、このエラーが発生しています:

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

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

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

警告:ヘッダー情報は変更できません-ヘッダーは、行427のwp-login.phpで(wp-includes / functions.php:3049で開始された)によって既に送信されています

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


1
NoticeSはかなり自明に見えます。あなたは何を試し、何がうまくいかなかったのですか?
s_ha_dum 14年

@s_ha_dum私はGoogleで見つけた多くのことを試しました...ちょうど今toschoのソリューションが私のために働いており、管理パネルにログインできますが、フォントが以前と同じではありません。私はこのエラーを得続ける:
雷電

回答:


15

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

次に、問題が再発するまで、各アドオンを段階的に有効にします。これでソースがわかったので、プラグインを見てみましょう。

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

  • wp_register_script() アクションのために呼び出す必要があります wp_loaded
  • wp_enqueue_script いずれかのアクション
    • wp_enqueue_scripts
    • admin_enqueue_scripts
    • customize_controls_enqueue_scripts または
    • login_enqueue_scripts(後者についてはこのスレッドを参照してください)。

問題は、Cookieでこの奇妙なエラーが発生するため、ログインできないことです。エラーは、ブラウザでクッキーをブロックしたが、それらをブロックしていないことを言っています...今日私がやったことはすべてstyle.cssに数行を追加していたので、それはとても奇妙ですが、これらのエラーが発生してから数時間後。
レイデン14年

@raiden次に、FTPごとにプラグインディレクトリの名前を変更し、現在アクティブなテーマに対して同じことを行います。
FUXIA

これで、パネルにログインできます...ありがとうございます!しかし、今、私は警告より1つのエラーが発生します:ヘッダー情報を変更することはできません-すでにによって送られたヘッダ(で開始出力のfunctions.php / WPを-含ま:3049)中のwp-含ま/ pluggable.php上のライン896
雷電

4

グレゴリーシュルツのソリューションに基づく:

すべてのスクリプトとスタイルを関数でラップし、その関数をターゲット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 —ログインページ


2

これが発生する理由は、これらの関数が、関数を使用せずに、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');

    関数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');

うまくいけばいい


1

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

wp_enqueue_script()不適切に呼び出されたため、このエラーが発生します。


私はそこに何があるか理解していますが、この「修正:代わりにwp_enqueue_scriptsを使用する」方法(実装?)がわかりません。
レイデン14年

wp_enqueue_scripts代わりに使用するだけでよいということですwp_print_stylesが、あなたのケースに関連しているとは思えません。これはトラブルシューティングの例にすぎません。あなたの場合、プラグインまたはテーマに誤用する機能があるwp_enqueue_script()ため、このエラーが発生します...
JMau

私はなっていたNotice: wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks.私は、関数内のすべての私のスクリプトとスタイルを包み、通知が去っていきました。
グレゴリーシュルツ

それに加えて、エラーは表示されません
グレゴリーシュルツ

1

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

コンソールでこのエラーが報告された場合:

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

最後の列(Component)は、エラーをトリガーしているプラ​​グインを示します。そこからそのプラグイン(またはテーマ)内を検索して、問題を見つけて修正します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.