大きな画像をアップロードするときに問題が発生します。2000x 2000(約)より大きな画像ではサムネイルが生成されません。ファイルは正常にアップロードされますが、サイズ変更されたバージョンは生成されません。エラーは表示されません。小さいサイズのものをアップロードすると、すべてがうまく機能し、小さいサイズが生成されます(例:test-100x100.jpg
)
私はこれがphp-Gd
問題であると思ったので私のホスティングサポートに連絡しました、しかしサポートはすべてが問題ないと言った。ここで私達が除外したものは:
まったく同じ設定で別のサーバーを試しても、すべてうまくいきます。
だから私は手動でWPをデバッグしようとしていない、そして私はアップロードされたファイルが扱われサイズ変更されている正確なファイルを見つけるのに苦労している。
/wp-includes
でいくつかのクラスが見つかった場合:
class-wp-image-editor.php
class-wp-image-editor-Gd.php
しかし、アップロード中にそれらのどれも使用されていないようです。 (私はdie()
をさまざまな関数に入れました)
wp_image_editors
にフィルタを追加して、どのエディタが使用されているのかを確認できます(GdまたはImagick)。過去のプロジェクトでは、GdとImagickの両方でサイズ変更ルーチンを拡張しました。サイズ変更を担当するメソッドはWP_Image_Editor_Imagick->crop()
とWP_Image_Editor_Gd->_resize()
です。
WP_Image_Editor_Gd->resize()
は単なるラッパーです。
このプロセスはajax上で実行されますが、デバッグにはvar_dump()
を使用できます。アップロードされた画像メッセージ、進行状況バー付きのボックスなどすべてに表示されます。
add_filter( 'wp_image_editors', 'wp23092013_extend_image_editor' );
function wp23092013_extend_image_editor( $editor ) {
var_dump( $editor );
return $editor;
}
ハッピーデバッグ;)