サポート » 使い方全般 » xx_print_stylesとxx_enqueue_scriptsの違い

  • こんにちは。
    公式テーマに申請中なのですが、レビューで
    wp_print_stylesではなく、wp_enqueue_scriptsを、
    admin_print_stylesではなく、admin_enqueue_scriptsを使用してください。
    という指摘がありました。

    ユニットテストでもエラーが出ずに、ちゃんと動作していたので気づかず、
    とりあえずWordPressコーデックスの原文を確認して、そのように修正しましたが、
    xx_print_stylesでなくxx_enqueue_scriptsを使用するのはなぜでしょうか?

    原文の should not be used to enqueue styles or scripts
    「スタイルやスクリプトをキューに使用するべきではありません(?)」という
    意味がよくわかっていません。

    ご存知の方がいらしたら、後学のために教えていただけると助かります。
    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 大雑把に説明すると
    wp_print_stylesは最終的にたまってるキューを吐き出すメソッドで
    wp_enqueue_scripts,はキューを登録するメソッド。

    恐らくwp_print_stylesをフックしてScriptをロードしてたのかと思うけど
    その方法は、Wordpress3.3(今から2年ほど前)で使用方法が非推奨になってる。

    これはなぜかと言うと、簡単に例であげるとwp_enqueue_scriptsを使用しているとwp_script_isで何のJSが読み込まれているかチェックできるから。
    例えばプラグイン等を自分で作ったとして、だいたいのサイトで導入されているjQuery等のJSライブラリを使いたい場合に、自分で読み込む必要が無い(読み込みが重複しない)ため。
    後は全体の修正をするときに読み込み箇所やロードオーダの変更が用意になるため。

    要するに、mignonstyleさんが読み込む予定のScriptと同様のものを
    他の誰かがプラグインを作成して読み込む場合に重複して読み込まれ、
    無駄が発生する可能性があるからwp_enqueue_scriptsを使いましょうね。
    て感じだと思う。

    トピック投稿者 Mizue Imai (Mignon Style)

    (@mignonstyle)

    c2nprds様

    お返事ありがとうございます。
    wp_print_stylesはすでに非推奨になっていたんですね。

    何のJSが読み込まれているかチェックしていて、
    他のプラグインなどと重複して読み込まれないようにしている(読み込みが重複しない)という説明、とてもわかりやすかったです 🙂

    コーデックス日本語版は未翻訳だったので、原文をグーグル翻訳と見比べながら読んでてよくわからなかったけど、c2nprds様の説明でこんな感じって理解できました。

    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「xx_print_stylesとxx_enqueue_scriptsの違い」には新たに返信することはできません。