【最新の直し方】WordPressのメディアライブラリがずっとぐるぐる回転して画像が表示されない不具合
ブログの記事を執筆して、いざ画像を挿入しようとしたところ
以下の不具合に見舞われました。
どういう訳かメディアライブラリのサムネイルが一枚も表示されない。
「一括選択」隣の丸いアイコンが
ずっとくるくると回転し続けているだけで
一枚も表示されないという謎の現象。
更には
・WordPressのテーマが検索できない
・プラグインを有効化すると真っ白い画面が表示される
・画像が挿入できない
などのバグも並行して発生しました!
そのせいで記事の更新を一時ストップする羽目に(´Д`)ハァ…
休日だったから3記事サクサク投稿しようと思っていたのに
見事に出鼻をくじかれて萎えた。
しかも、不具合が突然発生して
原因が思い当たらずひどく悩みましたね。
そんな謎のバグとの奮闘を記事にしてまとめましたので
良かったらお読み頂けると嬉しいです。
解決するヒントが見つかるかもしれません!
サクッと解決策を知りたい方は目次より飛んでください!
この記事の内容
メディアライブラリの不具合を直すために試したこと
全くといっていいほどに原因がわからなかったので
ネットに掲載された解決方法を片っ端から試してみました。
・プラグインの全停止
・WordPressの再インストール
・wp-config.phpに
define('CONCATENATE_SCRIPTS’, false );
define('WP_MEMORY_LIMIT’, ’64M’);
define('WP_MAX_MEMORY_LIMIT’, '256M’);
のコードを挿入
・admin-ajax.phpの一部コードの変更
・PHPのバージョンアップ
・.htaccessに
PHP_value default_charset none
PHP_value output_handler none
なるコードの挿入
・GoogleChromeの拡張機能の全停止
・画像の一部の名前を変更
などなど、色々と試してみたのだけど全く解決できなかった…。
因みに特にわかり易く参考になったサイトは以下になります!
上から順に試してみる価値ありです!
それでも解決できない場合は続きを読んで欲しいです。
メディアライブラリのバグの原因とエラーを特定する方法
メディアライブラリのエラーに対する処置を色々と
試してみるも埒が明かなかったので
同時期に発生していた
「プラグインを有効化した際、真っ白い画面が表示される」
不具合から修正することにしました。
色々と調べていくうちに、原因であるエラーコードを
あぶり出す方法について見つけました。そのやり方は
wp-config.phpのコード内にある
define('WP_DEBUG’, false); を
define('WP_DEBUG’, true); に書き換えです!
そうすることにより
WordPressのエラーコードが出力されるようになります!
大体の人はFTPソフトを用いて
wp-config.phpの書き換えを行うと思いますが
自分はFTPソフトを利用せずに
レンタルサーバーのファイルマネージャーより更新しました。
因みに自分が契約しているレンタルサーバーは「mixhost」
そんな訳で真っ白い画面を表示させた後に
define('WP_DEBUG’, true); にしてみると以下の
エラーコードが表示されました(クリックで拡大します)。
なんか文字化けしている!
また「Warning:Cannot modify header information」とは
どういうことなんだろうか。
いずれにしろ原因が見つかってホッとしました!
白い画面が表示された際は是非
define('WP_DEBUG’, true);
を使用して欲しいです!解決までの近道になります!
ただし、使用した際、問題もありました。
WP_DEBUGの要注意点
define('WP_DEBUG’, true);に書き換えた状態で
試しに管理画面、サイトの画面を見てみたら
以下のようなエグい有様になっていました。
軽くホラーですよねこれ( ;゚Д゚)
デバックしている最中にサイトに
訪問してしまった方がいましたら本当に申し訳ありませんでした(汗)
もしかすると、自分のエラーコードに文字化けが含まれていたから
このような悪夢のような現象が起きてしまったのかもしれませんね。
いずれにしろ、エラーコードが特定できたら早急に
define('WP_DEBUG’, false);に書き換え直すをお勧めします!
Warning:Cannot modify header informationとは
調べてみるとどうやら
header関数の前に余計な処理が割り込んでしまった時に
発生するエラーなんだそうです。
なんと、PHPは少しでも余計な空白が含んでいると
エラーとして出力されてしまうのだそうです。
自分の場合、おそらく何かの拍子にコードに空白が含んでしまい
それが原因で文字化け&エラーが起きたのだと考えますね。
そんな訳で直接、エラーを起こす原因になったコードを修正しに
ファイルを探したのですが特定することができず…別の方法で処理しました!
解決策:php.iniのoutput_bufferingをOnに変更
php.iniのoutput_buffering
という項目をOnに変更すると空白や割り込み処理を無視してくれそうです!
php.iniの設定を変更するには
契約しているレンタルサーバーにアクセスするか
直接、FTPソフトなどを用いて書き換える必要があります。
ここでは「mixhost」のphp.iniの設定方法について掲載しますね。
mixhostのphp.iniの設定方法
1.mixhostにログイン
2.アクションからcPanelにログイン
3.ソフトウェアからMultiPHP INI Editor
4.PHP INI の基本設定 の構成より
php.iniの設定を変更したい場所を選択し適用
なんと、どういう訳かmixhostのサーバーに
output_bufferingの項目がなく、直接php.iniを作成して
output_buffering = Onと書き加えてみたものの。
全く意味をなさなかったです(;・∀・)
諦めきれず
output_bufferingに類似している
zlib.output_compressionなる項目を最下部で見つけ
無効であった設定を有効にし適用したら
メディアライブラリのサムネイルが一枚も表示されない不具合が直りました!
因みにzlib.output_compressionについて調べてみたのですが
透過的なページ圧縮を行うかどうか。php.ini または Apache の設定でこのオプションが、"On" に設定された場合、 ブラウザが “Accept-Encoding: gzip" または “deflate" ヘッダを送信する場合に、ページは圧縮されます。 “Content-Encoding: gzip" (および “deflate") と “Vary: Accept-Encoding" ヘッダが出力に追加されます。 実行時、何らかのデータを送出する前にのみ設定することが可能です。
圧縮に関する設定のようです。
正直、なにがなんだかさっぱりなのが本音(´;ω;`)
zlib.output_compressionを有効にしてから5日近く経過しましたが
今のところ全く問題はありません!
どうしても解決策が見つからない場合は
バックアップをとってからzlib.output_compressionを有効にしてみるのが
有効だと思います(;^ω^)
「Warning:Cannot modify header information」について
参考になったサイトは以下になります!
WordPressで”Cannot modify header information”の警告が出たときの解決方法