web-dev-qa-db-ja.com

アップロードの問題をデバッグする WP 実際の画像サイズ変更は何ですか?

大きな画像をアップロードするときに問題が発生します。2000x 2000(約)より大きな画像ではサムネイルが生成されません。ファイルは正常にアップロードされますが、サイズ変更されたバージョンは生成されません。エラーは表示されません。小さいサイズのものをアップロードすると、すべてがうまく機能し、小さいサイズが生成されます(例:test-100x100.jpg

私はこれがphp-Gd問題であると思ったので私のホスティングサポートに連絡しました、しかしサポートはすべてが問題ないと言った。ここで私達が除外したものは:

  • 許可の問題
  • ディスク容量不足
  • メモリ不足(メモリ量が半分のサーバーでは正常に動作する)
  • 最大アップロード制限(WPおよびサーバー上)

まったく同じ設定で別のサーバーを試しても、すべてうまくいきます。

  • 最新バージョンのWPのクリーンコピーを使用します。有効なプラグインなし
  • サムネイルを再生成するプラグインを試しましたが、ここでもすべてのプロセスがエラーなしで正常に終了しますが、サイズ変更は行われませんでした。

だから私は手動でWPをデバッグしようとしていない、そして私はアップロードされたファイルが扱われサイズ変更されている正確なファイルを見つけるのに苦労している。

/wp-includesでいくつかのクラスが見つかった場合:

  • class-wp-image-editor.php
  • class-wp-image-editor-Gd.php

しかし、アップロード中にそれらのどれも使用されていないようです。 (私はdie()をさまざまな関数に入れました)

3
user63457

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;
}

ハッピーデバッグ;)

1
Dan Ștefancu