[WordPress]「メディアを追加」ボタンが反応しない場合の対処法


wordpress logo

WordPressを3.5.2にアップデートした際、管理画面で「メディアを追加」ボタンを押しても反応しなくなってしまいました。

解決するまでに実施したことと、原因をメモのため記載します。

実施したけど解決しなかった対処法

Google検索「wordpress メディアを追加 反応しない」で表示されたサイト様を参考に下記の対処を行いましたが解決しませんでした。

WordPress 3.5で「メディアを追加」ボタンを押しても反応しない時
http://blog.yhp21.com/archives/692

様々な手段を講じてみたものの効果が無くて手詰まりだったが、さらに調べていたらwp-config.phpの一番下に define(‘CONCATENATE_SCRIPTS’, false ); を追加するだけで直るらしいと書いてあったのでそのとうりにしてみると・・・

WordPressで「メディアを追加」ボタンが反応しない問題
http://enz0.net/webcreate/wordpress_mediabt/

どうやらWordpressのJavascriptを正常に圧縮できていないらしい。

というわけで早速Worspressの管理画面以下を圧縮しないように設定します。

自分の環境でいうと、サーバーがCentOSなので修正するファイルは
「/etc/httpd/conf.d/pagespeed.conf」になります。

このファイルに「ModPagespeedDisallow */wp-admin/*」を追記します。

wordpress管理画面で画像挿入、リンク挿入できない場合の対処法
http://toda.sg/online/wordpress-manage-system-bug/

1.追加またはアップデートしたプラグインを、一旦停止してください。
2.停止した後で、「画像の追加」や「リンクの挿入」が動作することを確認してください。
3.動作した場合、原因が特定できたことになります。原因となったプラグインが必要である
なら、古いバージョンのプラグインのインストールを検討ください。

原因と解決方法

プラグインをすべて停止させても解決しないため使用中のテーマのfunctions.php内の関数呼び出しを一つずつ停止してみたところ、Wordpress標準のjQueryの呼び出しを止め、別のjQueryを呼び出している下記の部分を削除してみると「メディアを追加」が使えるようになりました。

wp_deregister_script('jquery');
wp_enqueue_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', array(), '1.9.1');

どうやら管理画面ではWordpress標準のjQueryを使用したほうが良いみたいです。
ということで、is_admin関数を使用し、管理画面以外の場合のみ上記動作をするよう変更することで解決しました。

変更後

//管理画面以外であればjQueryを登録しなおす
if(!is_admin()){
    wp_deregister_script('jquery');
    wp_enqueue_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', array(), '1.9.1');
}

functions.phpに変更を加える場合は別の個所との兼ね合いを考慮する必要もあるという教訓になりました。