SPOTブログ

2016/03/24

WordPressでメディアライブラリがぐるぐる回って写真が表示されないトラブルは、jetpack非表示等のメニューのカスタマイズが原因でした

本日「WordPressのメディアライブラリに画像が表示されない」とご相談を受け、調査を行いました。

症状の内容としては以下のとおり。

  • 記事の投稿画面で「メディアを追加」した際に、メディアライブラリの画像が空っぽで、ローディングがぐるぐる回り続ける
  • メディア→メディアライブラリで画像の一覧を表示する際、リスト表示なら問題ないが、グリッド表示だと空っぽでぐるぐる回り続ける
  • IEでもGoogle Chromeでも同様。複数パソコンからも同じ症状が怒ることを確認
  • 上記トラブルは編集者アカウントのみで、管理者アカウントからは再現できなかった

media1

media2

最初はGoogleで「メディアライブラリ 表示されない」と検索してみたたところ、Contact Form 7とTable Pressの組み合わせがダメとか、Chromeのデベロッパーツールで見るとadmin-ajax.phpのエラーが出ている等の報告はチラホラと有るのですが、どちらも違うようで…

他にもfunctions.phpの改行をなくしましょうとか、プラグインをオフにしましょうとか。
でも結局解決せず…

問題が出るのは編集者アカウントのみで、管理者では問題がないことからユーザー権限関係だろうと推測し、User Roll EditorやAdminimizeをオフにしてみましたが原因がわからず、最終的にfunctions.phpにたどり着きました。

原因はJetpackをメニューから消すfunctions.phpの設定でした

で、やっと原因がわかりました。ブログ記事を投稿した際に、twitterやfacebookに自動投稿できるよう、Jetpackプラグインをインストールしていて、パブリサイズ共有を有効にしていたのですが、Jetpackの設定画面を見せたくないため、サイドメニューから消していました。

これがAdminimizeでは設定できなかったため、functions.phpで以下のように記述していました。

ためしにこの記述を外してみると、メディアライブラリが読み込まれるようになりました。

ただ、そのままでは編集者でもJetpackがメニューに出てきてしまいますので、以下の様に変更します

変更になったのは1行目です。admin_initにフックしていたのを、admin_menuに変更します。このままだと優先順位の問題でメニューからjetpackが消えてくれなかったので、999とつけて、一番最後に実行されるように設定します。

これで、jetpackをメニューから消しつつ、メディアライブラリも表示させることが出来るようになりました。

参考:https://wordpress.org/support/topic/jetpack-for-super-admins-only

 

最近のWordPressはアップデートすると不具合が起きることが本当に増えてきましたね。
しっかりバックアップをとってトラブルがあっても戻せるように準備をしておくことが重要ですね。