サポート » インストール » WP 3.3 にアップしたらnoticeが…

  • 解決済 tokyofuzz

    (@tokyofuzz)


    MAMP環境でWPテーマを1から作っていたのですが、
    WP3.2.1 → WP3.3にアップしたら、下記のようなnoticeが出てしまいました。

    Notice: wp_enqueue_script が誤って呼び出されました。
    スクリプトおよびスタイルは wp_enqueue_scripts、admin_enqueue_scripts、init フック以降のみに登録・キュー追加できます。
    詳細は WordPress のデバッグをご覧ください。 (このメッセージはバージョン 3.3 で追加されました)
    in /Applications/MAMP/htdocs/www/wp-includes/functions.php on line 3578

    入れているプラグイン(Breadcrumb NavXT 4.0.0のみ)を停止しましたが状況は変わらず、
    プラグインを停止→有効化しようとしたら、noticeに加えこんなWarningも出てきました。

    Warning: Cannot modify header information – headers already sent by (output started at /Applications/MAMP/htdocs/www/wp-includes/functions.php:3578) in /Applications/MAMP/htdocs/www/wp-includes/pluggable.php on line 866

    テーマを自作からTwenty Eleven 1.3にしようとすると、やっぱり上記のnoticeとWarningが出ます。
    (ブラウザのバックボタンで戻り、リロードするとテーマは切り替わっています)

    尚、
    よく判らないまま、自作のfunction.php内でwp_enqueue_script()から始まる構文をすべて削除してみたところ、
    noticeもWarningも出ませんでした。
    でも、これだと後から追加したjsが使用できないことに…。

    noticeとWarningを回避する方法、判る方いらっしゃれば教えていただけないでしょうか。
    お願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    tokyofuzzさん、こんにちは。

    テーマのfunctions.phpは、wp_enqueue_scripts、admin_enqueue_scripts、init などのフックより前に行われます。

    なので、functions.phpで

    function add_custom_scripts() {
    	wp_enqueue_script( 'script_name' );
    }
    add_action( 'init', 'add_custom_scripts' );

    などと、initフックなどでスクリプトの登録を行うようにすればNoticeエラーは回避できます。

    Warningエラーは、Noticeエラー発生によるリダイレクトができないためのエラーなので、Noticeエラーを修正すれば、自動的に直ります。

    トピック投稿者 tokyofuzz

    (@tokyofuzz)

    jim912さん、初めまして。ご教示ありがとうございます!

    テーマのfunctions.phpは、wp_enqueue_scripts、admin_enqueue_scripts、init などのフックより前に行われます。

    そういうことでしたか…!
    noticeではwp_enqueue_scripts、admin_enqueue_scripts、init などのフックの後に登録、と明記されていたので、
    「後ってどういうことだ」とかなり悩んでしまいました。。。

    自作のfunction.phpを修正し、add_action( ‘init’, ‘xxx’ ); を追加したところ、
    無事noticeが消えました〜! 助かりました、ありがとうございます!

    これにて解決済みとさせていただきますね。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「WP 3.3 にアップしたらnoticeが…」には新たに返信することはできません。