WordPressで画像付きの投稿などを行う際、「メディアを追加」ボタンをクリックして画像をアップロードする機会は非常に多いと思います。
よく使う機能なんですが、たまに画像をアップロードしようとするとHTTPエラーが発生してうまくアップロードができない場合があります。
症状としては画像をアップロードするとHTTPエラーが発生してアップロードができない。
ただ、エラーにはなっているけれども管理画面 > メディアで確認するとデータ自体は存在している。
なのでurlをコピーして投稿ページなどで直接imgタグでurlを指定してやれば画像を配置できなくはないんですよね。
一つの画像だけだったり、メンテナンスをしないサイトであれば直接記述で乗り切る場合もあるんですが不自由極まりない。。。
そこで今回の本題ですが、画像アップロード時のHTTPエラーは以下のコードを使用しているテーマのfunction.phpに記述すればほぼ解決します。
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
プラグイン、パーミッション、WordPressのバージョン、その他諸々のファイルが原因のこともあるかとは思いますが今のところ自分の環境では上記のコードの対応のみで解決が可能でした。
特定のレンタルサーバーや自作テーマ、販売されているテーマなど問わず発生する可能性があるエラーなので、困った時は上記のコードを記述することをおすすめします。