この記事の読了時間は約4分です。
wordpressで画像プレビューが機能しなくなりました。画像の投稿は問題なくできるんですが、プレビューで画像が表示されないので、画像を回転させたり、切り取ったりすることができませんでした。解決方法を調べました。
目次(クリックでワープ)
画像プレビューを表示させる方法
主に3つの方法があります。
1.プラグインを停止させてみる
画像系のプラグインが問題を引き起こしている可能性があります。最近入れたプラグイン、画像系のプラグインを中心に停止させてみて、画像プレビューが正常にならないか確かめてみましょう。
プラグインの種類によっては停止させると、一度編集していたCSSや追加コードが消えてしまうものもあるので、一つずつ停止させていった方が安全です(超面倒臭いけど)。
最近入れたプラグイン、画像系のプラグインを停止させても不具合が治らないなら、「プラグインが問題ではない」と考えて次の方法を試してみてもOKです。
2.function.phpを確認する
外観>テーマの編集から「function.php」というファイルの中身を確認します。
チェックすべきことは「function.php内に必要のない改行(空白)が含まれていないか」ということです。いらぬ改行があると画像関連の動作で問題が起こるそうです。
ただし「function.php」は重要なファイルなので、必要のあるコードを削除してしまうと、サイト全体が真っ白になり表示できなくなります。編集する前にはfunction.phpのファイルをダウンロードしバックアップをとっておいて下さい。
真っ白になってしまったら以下の記事が参考になります。
function.phpの編集は、僕位のレベルだとどの改行が不必要かもわからないので、プラグイン停止にびびってしまうような人は、なまじ手を出さない方がいいです。「function.phpなんて最近いじった記憶がない」なら次の方法を試しましょう。
3.while (@ob_end_clean());を追加する
プラグインの停止、function.phpの編集は問題の根本的解決を目指す方法でした。
問題そのものの原因は解決できないけど、とりあえず画像プレビューを使えるようにする対処療法として、
1 |
while (@ob_end_clean()); |
という1行のコードをwordpressのwp-includes/class-wp-image-editor-gd.php内に追加するという方法があります。
追加する位置を間違えると、さらに画像関係のバグが発生することになるので、追加する場所はよく確認しましょう。コード自体も()が多くてややこしいのでコピペが安全です。
public function stream( $mime_type = null ) {
list( $filename, $extension, $mime_type ) = $this->get_output_format( null, $mime_type );while (@ob_end_clean()); /* ←この行を追加 */
Topic: admin-ajax.php imgedit-preview header problem « WordPress.org Forums
僕はこれで画像プレビューが正常に治りました。注意点としてはテンプレートの更新などがあるとwhile (@ob_end_clean());のコードは上書きされて消えてしまうので、その都度追加しなければいけないようです。
以下のサイトでこの方法を知りました、ありがとうございますm(_ _)m
【備忘録】WordPressの画像編集で画像が表示出来なくなった場合の対応方法 – Dream Seed
まとめ
問題を根本的に解決するにはIT知識がかなりいります。
while (@ob_end_clean());を追加するのが一番簡単だけど、あくまで対処療法。
知識がないから問題を引き起こしているのに、その問題解決は知識がないと無理というのは無理ゲーすぎる。こんな時にプログラマの友達が一人いれば相談できて簡単に治してくれそうなのになぁ。
適用させたプラグインを時系列で並び替えるプラグインがあれば、最近何追加したっけ?と遡ることができるのでいいなと思いました。
この記事をブログ等で紹介する際は下のHTMLコードをコピペしてお使い下さい。
泣いて喜びます。
<a href="http://49hack.jp/wordpress-image-edit-bug/">wordpressの画像プレビューで画像が表示されなくなった時の解決方法</a>