【備忘録】WordPressの画像編集で画像が表示出来なくなった場合の対応方法

2016.4.23
wordpress

原因がはっきりしないのですが、何かの拍子にWordpressでの画像編集が出来なくなってしまったので、確認した内容と対応方法を備忘録として残しておきます。

画像編集ができない

WordPress 4.5がリリースされる直前だったのですが、気が付いたらWordpress上で画像編集が出来なくなっていました。トップの画像のようにトリミングや画像回転を行う部分のプレビューが表示されず何もできない状態です。もちろん画像自体は存在し、ブログで表示するのには問題はありません。そもそもこの編集画面でも左側にはプレビュー表示出てるし。

できなくなったタイミングがわからない

画像編集が行えなくなったタイミングがはっきりないのですが、気が付く少し前に使用しているMySQLを5.0系から5.5系に変更しています。ひょっとしたらそれが影響したのかもしれません。

ネットで解決策を探すもヒットせず

とりあえずネットで解決策を探してみましたが、これはというものが見つかりませんでした。ひとまず見つかったものとしては下記のようなのも。

functions.phpの記述ミス

<?php ~ ?>

<?php ~ ?>

このように空白があるとダメで、

<?php ~ ?>
<?php ~ ?>

これなら大丈夫というもの。Wordpressの有名なバグのようです。ただ今回は問題なく、テーマを変えても改善しませんでした。

プラグインが悪さをしている

プラグインを1つずつ外したり、すべてのプラグインを外したりしても変わりませんでした。

GDライブラリが入っていない。

画像編集の表示はGDを利用しているそうで、これが利用できないと表示されないとのこと。しかし、phpinfo()で確認したらちゃんと入ってました。

スクリーンショット_042316_094044_AM

テストサイトで環境を再現したら表示できる

このサイト、同じサーバ上に別ドメインで同じ環境を再現しているテスト用のサイトがあるのですが(その割に本番環境で直接修正することが多いですが……)、そちらでデータベースとテーマファイルなどを復元したところ、問題なく編集が可能でした。

こうなってしまうと、テーマやデータベースの問題ではないのかなぁっという気もしますが、手を出せない部分なのでお手上げです。

WordPressのコアファイルを修正して回復

サイトのバックアップをとって一度既存環境を削除しようかとも思っていたのですが、WordPressのフォーラムにあった情報を試したところ、編集ができるようになりました。

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());  /* この行を追加 */

        switch ( $mime_type ) {
            case 'image/png':
                header( 'Content-Type: image/png' );
                return imagepng( $this->image );
            case 'image/gif':
                header( 'Content-Type: image/gif' );
                return imagegif( $this->image );
            default:
                header( 'Content-Type: image/jpeg' );
                return imagejpeg( $this->image, null, $this->get_quality() );
        }
    }

ob_end_clean()は出力バッファをクリアするという関数のようです。

これを追加したところ、画像編集が可能になりました。

スクリーンショット_042316_093406_AM

コアファイルを修正しているので、バージョンアップでもとに戻ってしまいますが、暫定処置ということで。

タグ: , , ,

この記事が気に入ったらフォロー・購読をお願いします

最新情報をお届けします

News >モバイル

Google、Nexus / Pixelへのセキュリティアップデート提供期限を公開

GoogleのNexusとPixelは、発売から2年間はAndroidのアップデートを提供、3年間はセキュリティアップデートを提供ということになっています。でも実際いつまで?というのはなかなか把握しきれなかったりするもの ...

News >モバイル

任天堂、3D表示のなくなった3DS、new 2DS LLを7月に発売

任天堂がnew 3DS LLから3D機能を取り除いたnew 2DS LLを7月13日に発売すると発表しました。価格は税抜14,980円。 折りたためない廉価版扱いの2DSはすでに発売中ですが、new 2DS LLは通常の ...

News >モバイル

背面が透明なGalaxy S8を作る方法。フィルムさえ剥がせれば意外と簡単そう

透明で中が見えるシースルーなガジェットというのはいつの時代もなかなかに魅力的なもの。今回は発売されたばかりのGalaxy S8の背面をシースルーにするハックがYouTubeで公開されています。 ガラスバックを採用している ...

最大60%オフ! PlayStation VRタイトル 期間限定セール開催中

PlayStation Storeが期間限定でPlayStaion VRのタイトルを最大60%オフとするセールを開催しています。 PlayStation VRタイトル 期間限定セール サマーレッスンが含まれていないので、 ...

News >モバイル

QWERTYなBlackBerry Keyone、北米での販売は5月31日と発表

英国では5月5日に一部の小売店でごく少数の販売、それ以外は5月22日以降になるというBlackBerry Keyoneですが、米国およびカナダでの発売が5月31日になると発表されました。 関連:BlackBerry Ke ...

MENU

back to top