• 解決済 momokichi

    (@momokichi)


    Meta Slider自体は正常に動くのですが
    Meta Sliderのショートコードを入れていないページではwp_footer() でjQueryが読み込まれません。
    現状Meta Sliderの入っているページはトップページだけなので、is_home()で条件分岐などしてjqueryを読みこませれば済む話なのでしょうが、
    どうもその場しのぎな気がしますし、
    今後Meta Sliderを他ページに入れないという確証もありませんので
    きちんと原因を踏まえて対処したいです。

    jqueryに関してテンプレートには特別な記述はしていません。

    よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    Meta Sliderのショートコードを入れていないページではwp_footer() でjQueryが読み込まれません。

    他に常時jQueryを必要とするプラグインがないため、読み込まれないってことなんじゃないでしょうか。

    常時jQueryが必要なのであれば、お使いのテーマのheader.php、<?php wp_head(); ?>よりも上に
    <?php wp_enqueue_script( 'jquery' ); ?>
    を足すと全ページで読み込まれます。この方法であれば、条件分岐をせずとも既にMeta Sliderのプラグインが入っているページでも、jQueryが2回読み込まれたりはしません。
    (この方法を使わずに、テーマにベタ書きしてしまうと重複読み込みのおそれがあるので注意!)

    ※header.php、<?php wp_head(); ?>よりも上と書きましたが、追記場所は実はbody内とかでも問題ありません。上記方法だとhead内でjQueryが読み込まれますが、<?php wp_head(); ?>よりも下に書くと、<?php wp_footer(); ?>の位置で読み込まれます。
    なお、functions.phpに

    function my_scripts_method() {
        wp_enqueue_script( 'jquery' );
    }
    add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

    って感じで追記する方法でもOKです。

    wp_enqueue_scriptについては、よろしければこちらをご参考に。
    http://mypacecreator.net/blog/archives/1493

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    それともし、自前で用意したjQuer依存スクリプトがテーマ内にあるなら、それもwp_enqueue_scriptから出力するように書きかえてあげると、読み込み順とかいい感じになります。
    詳しくはこちらあたりを。
    http://dogmap.jp/2008/07/12/wp_enqueue_script/
    http://notnil-creative.com/blog/archives/1299

    トピック投稿者 momokichi

    (@momokichi)

    ありがとうございます。解決しました。
    wp_enqueue_script関数について
    「jqueryとかを他のところでホストされているものに差し替える時のおまじない」
    程度の認識しかなかったのですが
    (wp_headで勝手に読み込まれると思っておりました)
    正しい機能が分かって良かったです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Meta Sliderのショートコードが入っていないページでjqueryが読み込まれない」には新たに返信することはできません。