作成したオリジナルテーマ自体が既にjqueryが入っていて、そのうえ、pluginでprettphotoやlightboxやfancyboxを入れようとすると、うまく動かない。
もともとのオリジナルテーマがもってるjqueryとpluginでいれるjqueryが競合しているんだなぁと思って、いろいろ対策をしてみた。
1.pluginのjqueryを読み込ませない。
functions.phpに以下のソースを埋め込んで、読み込ませないようにした。
[php]
function load_cdn() {
if ( !is_admin() ) {
wp_deregister_script(‘jquery’);
}
}
add_action(‘init’, ‘load_cdn’);
[/php]
if(!is_admin())で、管理画面ではちゃんとjquery読ませるのがポイント。
だけど、うまく動かなかった……。
2.テーマに直で読ませているjqueryを削除する
これもうまくいかなかった……。
3.plugin「FancyBox for WordPress」を使用する。
「FancyBox for WordPress」です。
このpluginの嬉しかったところは、設定で「トラブルシューティング設定」というのがあって、「jQueryの起動スキップ。jQueryが2度起動される場合だけ使用 (初期値: off) 」にチェックを入れると競合を防ぐことができるということ。
1のjqueryの読み込みをやめさせるのをやめて、このチェックをしたら競合せずに動くようになりました。
1.の設定をした「FancyBox for WordPress」の使用では、競合して動きませんでした。1.のjqueryの読み込みをやめさせるのと、3.のjQueryの起動のスキップとではどう違うのだろう……。
コメントを残す