wordpressでprettyphotoやlightboxやFancyboxがうまく動かなかったので…

作成したオリジナルテーマ自体が既にjqueryが入っていて、そのうえ、pluginでprettphotoやlightboxやfancyboxを入れようとすると、うまく動かない。

もともとのオリジナルテーマがもってるjqueryとpluginでいれるjqueryが競合しているんだなぁと思って、いろいろ対策をしてみた。

1.pluginのjqueryを読み込ませない。

functions.phpに以下のソースを埋め込んで、読み込ませないようにした。


function load_cdn() {
	if ( !is_admin() ) {
	wp_deregister_script('jquery');
	}
}
add_action('init', 'load_cdn');

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の起動のスキップとではどう違うのだろう……。


Leave a Comment.