(腰かけSE様よりご指摘をいただき訂正:2013-03-23)
WordPressのプラグインHeadSpace2の設定画面で、「ページモジュール」表示中に、
- モジュールのドラッグ&ドロップができない。
- メニューバーの「メニューを閉じる」でメニューは閉じない。
- モジュールの「編集」ボタンをクリックすると、おそらく表示しているページにappendかprependされるだろう要素が無装飾で表示されてしまう。
WordPressは最近バージョンが3.5になったらしいのだけれど、そもそも最近になって使い始めたものだから前のバージョンだったら動くのかもわからない。
ただ、なんとなくだけど上記の症状から jQuery か jQuery ui の挙動がおかしい感じがする。。。
GoogleChromeの“要素を検証”で確認
対象のページで
右クリック > “要素を検証(N)” > “Resources”
で load-scripts.php にエラーを発見。
やっぱり jQuery の読込み時にエラーが発生しているみたいだ。
jQuery関連のバージョンダウンでサクッと解決
調べてみるとWordPressが3.5になったときに、jQuery 関連のバージョンも変更されていたので、
とりあえず WordPress3.4.2 に内包されている jQueryフォルダ(/wp-includes/js内) をアップロードしてみたら、上記3つの問題は全て解決。
他のプラグインとかで問題が出てくるかもしれないが、今のところは何も起きていない。
注意
おそらくWordPressのアップグレードに伴うjQueryのバージョン変更により、HeadSpaceが正常に動作しなくなったものと考えていますが、実際はどこがどうエラーを起こしているかまでは検証してはおりません。
追記:WordPress3.5.1でも同じような症状にでくわした。
上記と同様にjQueryフォルダを3.4.2のものと入れ替えても解決しないので、
フォルダ内を覗いてみると3.4.xから3.5.xのときにjsのファイル名が変わってた。
- jQuery
- [wp3.4]jquery.js(ver.1.7.2) ⇒ [wp3.5]jquery.js(ver.1.8.3)
- 非圧縮ファイル
- [wp3.4]jquery.xxx.dev.js ⇒ [wp3.5]jquery.xxx.js
- 圧縮ファイル
- [wp3.4]jquery.xxx.js ⇒ [wp3.5]jquery.xxx.min.js
- 追加ファイル
- [wp3.5]jquery.masonry.min.js
- uiフォルダ内
- みてない
つまり、WordPress3.4.2内のjQueryフォルダを読込ませるだけでは、load-script.phpscript-loader.php はちゃんとjsファイルを読込めてないということだから、
WordPress3.5.1の load-script.phpscript-loader.php 内のjQuery関連のjsファイル読込み部分を書き換えることで解決するはず。
でも面倒だったので、機能不全にはなっても致命的エラーはないだろうと高を括って WordPress3.4.2のload-script.phpscript-loader.phpと入れ替えて解決。
ちなみに、WordPress3.4.2のload-script.phpscript-loader.phpだと122行目、3.5.1だと127行目あたりでjQuery関連を読込んでいる。
さらに追記:最終的な解決方法
上記の方法でHeadSpaceは動くようになった。が、管理画面上でフォーム部品(主にボタン)の描写と挙動がおかしくなった。
あるじゃないか、致命的なエラー。描写はともかく挙動がおかしくなるのは困る。
ということで不完全燃焼気味の応急処置の方法は、以下のようになる。
/wp-includes/js/jQuery/
と/wp-includes/
を3.4.2のものと入れ替える。load-script.phpscript-loader.php- HeadSpaceの設定をする(以後、変更しないでいいように入念に)。
/wp-includes/js/jQuery/
と/wp-includes/
を3.5.xのものに戻す。load-script.phpscript-loader.php
jQueryフォルダ交換とload-script.phpscript-loader.php内のjQuery読込み部分のみの書換をした場合については未検証。