サポート » 使い方全般 » 画像の回転や反転時に追加されるファイルを抑制したい

  • sanokoyuki

    (@sanokoyuki)


    image.jpg をアップロードした後、回転したり反転した時に、

    オリジナルの

    image.jpg
    image-128×128.jpg
    image-240×320.jpg
    image-768×1024.jpg

    これらに加えて

    image-e0123456789012.jpg
    image-e0123456789012-128×128.jpg
    image-e0123456789012-320×240.jpg
    image-e0123456789012-1024×768.jpg

    が作成されます( e 以降はランダムな数字(?) 13 桁)。
    おそらく画像の復元のためだと思うのですが、image.jpg は残しても縮小したものは必要ないように思います。

    この作成を抑制する方法はあるのでしょうか?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • gblsm

    (@gblsm)

    「e数字」が付くファイル名は回転や反転された後の画像ファイルです。オリジナルの内容が上書きされることはありません。
    wp-config.php に

    define( ‘IMAGE_EDIT_OVERWRITE', true );
    

    を追加すると、「e数字」の最初のひとつは作られますが2つ以上にはなりません。
    (最初のひとつも無くす方法は存じ上げません。)
    https://codex.wordpress.org/Editing_wp-config.php#Cleanup_Image_Edits

    128×128などのファイル名は、WordPress 本体および有効にしてあるテーマがサポートするサイズの画像が自動的に生成されたものです。
    これを無くすと、オリジナルと回転/反転後のどちらに対しても、128×128などのファイルが作られなくなります。無くす方法は例えばテーマの functions.php に下記のコードを追加します。

    function my_remove_all_image_sizes() {
    	return array();
    }
    add_filter( 'intermediate_image_sizes', 'my_remove_all_image_sizes' );
    
    • この返信は6年前にgblsmが編集しました。
    トピック投稿者 sanokoyuki

    (@sanokoyuki)

    gblsm さま
    お返事ありがとうございます。
    またヒントをいただきありがとうございます。

    ただ
    define( ‘IMAGE_EDIT_OVERWRITE', true );

    if ( !defined('ABSPATH') )
    	define('ABSPATH', dirname(__FILE__) . '/');
    
    define( 'IMAGE_EDIT_OVERWRITE', true );
    
    /** Sets up WordPress vars and included files. */
    require_once(ABSPATH . 'wp-settings.php');

    というようにしましたが、なぜか

    image.jpg
    image-128×128.jpg
    image-240×320.jpg
    image-768×1024.jpg
    image-e0123456789012.jpg
    image-e0123456789012-128×128.jpg
    image-e0123456789012-210×240.jpg
    image-e0123456789012-1024×768.jpg

    とファイルができてしまいました。
    WordPress はプラグインも外した状態でしたが…。
    もう少し奮闘してみますので解決済みまでもうしばらくお待ちください。

    トピック投稿者 sanokoyuki

    (@sanokoyuki)

    追記です。
    128×128 、 240×320 、 768×1024 等は
    ダッシュボード > 設定 > メディア
    で設定されてある分です。

    これは
    define( ‘IMAGE_EDIT_OVERWRITE', true );
    で作成を抑制できるわけではないのでしょうか?

    gblsm

    (@gblsm)

    これは
    define( ‘IMAGE_EDIT_OVERWRITE’, true );
    で作成を抑制できるわけではないのでしょうか?

    それを追加するだけでは 128×128 などのファイル名を抑制できません。

    128×128 などのファイル名を抑制する方法を最初のコメントの後半に書きました。
    https://ja.wordpress.org/support/topic/画像の回転や反転時に追加されるファイルを抑制/#post-226729

    トピック投稿者 sanokoyuki

    (@sanokoyuki)

    gblsm さま
    申し訳ありませんでした。

    ご指摘の対応をしてみました。

    image.jpg
    image-e0123456789012.jpg

    となりましたが他のサイズのものはなにも作成されませんでした。

    ただこれだと
    ダッシュボード > 設定 > メディア
    でサイズを 0 にすることで作成されなくなります。

    image.jpg をアップロードして回転した際に、

    image.jpg → △:残しても残さなくてもいい(復元を考慮すると残すべき?)
    image-128×128.jpg → ×:残したくない
    image-240×320.jpg → ×:残したくない
    image-768×1024.jpg → ×:残したくない
    image-e0123456789012.jpg → ○:必要(※)
    image-e0123456789012-128×128.jpg → ○:必要(※)
    image-e0123456789012-210×240.jpg → ○:必要(※)
    image-e0123456789012-1024×768.jpg → ○:必要(※)

    ※ ただしできれば e 以降 13 文字の数字はいらない…。

    というのをやろうと思っているのですが難しそうですね。

    • この返信は6年前にsanokoyukiが編集しました。
    • この返信は6年前にsanokoyukiが編集しました。
    gblsm

    (@gblsm)

    WordPress コアの wp-admin/includes/image-edit.php をお読みになると、IMAGE_EDIT_OVERWRITE に応じて処理する(image-e数字のファイルを作ったり削除したり)ところが見つかります。そのときオリジナル (image.jpg) を削除しないようにわざわざ条件判定していたり、オリジナルを復元する処理を設けたりしています。なので変更するならここになると思いますが、アクションやフィルターが用意されていないので大変でしょうね。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「画像の回転や反転時に追加されるファイルを抑制したい」には新たに返信することはできません。