松本太一録

Easy FancyBoxはDigiPress MatureのJavaScriptを障害する

Easy FancyBoxはDigiPress MatureのJavaScriptを障害する

DigiPress MatureはデザインがクールでカスタマイズもしやすWordPressテーマですが、グローバルメニューが展開されなかったり、アコーディオンエフェクトが効かないといったJavaScriptの不具合が起こっていました。プラグインとのバッティングが原因だったことがわかりましたのでご紹介します。

グローバルメニューが展開されない不具合


このブログはWordPressで運営しており、テーマはDigiPress Matureを使用してます。デザインがクールでカスタマイズもしやすいのでとても気に入っています。

投稿した記事が100記事を超え、カテゴリーがカオスな状態になっていました。訪問していただいた方々がグローバルメニューから記事へアクセスをしやすいように、カテゴリーを階層化するなど整理することにしました。

DigiPress Matureでは、グローバルメニューに表示した親カテゴリーの上にマウスのカーソルを置けば、子カテゴリーが自動で展開される機能があります。

Easy FancyBoxはDigiPress MatureのJavaScriptを障害する

しかし、カテゴリーの整理を終え、グローバルメニューの展開機能を確かめようとしたところ、うまく機能しなかったのです。

それだけではありません。スマートフォンでも[Menu]をタップすれば、グローバルメニューが展開されるはずですが、こちらもうまく機能しませんでした。

Easy FancyBoxはDigiPress MatureのJavaScriptを障害する

Digistateへ問い合わせ

そこで、DigiPress Matureを提供されているDigiStateさんに連絡することにしました。
松本
Matureを使わせていただいています。この度、グローバルメニューを階層化したくて、メニュー設定画面で親・子カテゴリーを設定したのですが、サイト上でグローバルメニューにマウスをホバーしても子カテゴリーが現れません。これはどうしてでしょうか。
Digistate
コメントありがとうございます。サイトを確認致しましたところ、以下のJavascriptのエラーが発生しているようです。——————————————————————
GET http://taichimatsumoto.com/wp-includes/js/jquery/jquery-1.10.2.min.map 404 (Not Found)
——————————————————————このエラーは”jquery-1.10.2.min.map” というスクリプトが見つからないというエラーであり、これによりテーマのJavascriptが正常に読み込めていない可能性があります。

従いまして、Javascriptで動作させているサブメニューのアコーディオンスライドエフェクトが効いていない状態となっています。

また、それ以外にもJavascriptで制御している部分は全て動作しない状態となっています。

調査したところ、WordPress 3.6にて該当の不具合が発生するケースが多数報告されており、これはテーマやプラグインとは関係なくWordPress本体の問題として指摘されています。

※全ての環境で必ずしも発生する不具合ではなさそうです。

http://core.trac.wordpress.org/ticket/24994

この問題を解決するには、今後のWordPressのアップデート(3.6.1~)を待つか、一時的な対応としてWordPressにある”jquery.js” の内容を以下のように一部修正する対策が挙げられています。

●対象ファイル:
/wp-includes/js/jquery/jquery.js

●編集箇所:
2行目の以下の行を削除
———————————————————————-
//@ sourceMappingURL=jquery-1.10.2.min.map
———————————————————————-

(一部削除)
DigiState様ご丁寧な調査、返信ありがとうございました。こういった丁寧かつ迅速な対応をしていただけるのもDigistateさんの製品を気に入っている理由のひとつです。

WordPressテーマ「DigiPress -Mature-」をもっと詳しく知りたい方はコチラ

DigiStateさんの見解によれば、「テーマのJavascriptが正常に読み込めていない可能性がある。」とのことですね。

アドバイス通りに”jquery.js” の内容を一部修正してみたり、使用していたWordPress 3.6を3.5.2にダウングレードしてみましたが、残念ながらこの2つの方法では問題を解決することはできませんでした。

プラグインとのバッティングか?

以前、キャッシュ系のプラグインをインストールした際、.htaccessが書き換えられ、管理画面にさえアクセスできない事態に遭遇したことがあり、プラグインとのバッティングを疑いました。

現在、インストールしているプラグインの中で怪しそうなのといえば、「AJAX Thumbnail Rebuild」「jQuery lazy load plugin」「WP Hyper Response」あたりかなと思い、それぞれ停止してはJavascriptの読み込みを確認しましたが、いっこうに改善されず、途方にくれていました。

仕方なくインストールしているプラグインをしらみ潰しに調査しました。そして見つけました!MatureのJavascriptの読み込みを障害していたプラグインを!

そのプラグインの名は「Easy FancyBox」。

そうでした。Easy FancyBoxはjQueryのFancyBoxを利用して動作しているのでした。

NetaOneで以下のように注意が促されていました。

Easy FancyBoxは、他のJavaScriptライブラリと競合する場合が多々あります。その場合は、解決方法はないので、諦めて他のプラグインやJavaScriptライブラリを利用しましょう。

つまり、Easy FancyBoxがDigiPress MatureのJavaScriptライブラリと競合して、Mature側のJavascriptが正常に読み込めていなかったと推察できます。

Matureユーザーのみなさん、MatureのJavascriptを有効に活用する場合は、Easy FancyBoxはインストールしないようにしましょう!

URL :
TRACKBACK URL :

*
DigiPress

Return Top