• 解決済 a1bo

    (@a1bo)


    親テーマに「Twenty Eleven バージョン3.4.2」を使用し、子テーマにて「CSS」や「functions.php」のカスタマイズをしています。

    そこで、“横幅600px” 位の画像をUPすると、「uploadsフォルダ」内に、不要な画像サイズが自動生成されてしまいます(※メディア設定で指定したサイズとは別のサイズ画像です)。

    原因を調べたところ、親テーマの「functions.php」内にある、

    add_image_size( 'small-feature', 500, 300 );

    が関係していました。そのコードを//コメントアウトすれば、生成されないのですが、テーマアップデートの際に、そのつど気にしないといけないので、
    理想としては、子テーマの「functions.php」にて生成させないようにしたいです。

    子テーマの「functions.php」に、どのように記載すればよろしいのでしょうか? よろしくお願い致します。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • http://www.paulund.co.uk/remove-default-wordpress-image-sizes

    上記のものを小テーマのfunctionsに書いても内容的にも問題無いと思います。

    モデレーター jim912

    (@jim912)

    まず、functions.php の読み込み順は、子テーマ、親テーマの順となります。
    次に、親テーマ(Twenty Eleven)の

    add_image_size( 'small-feature', 500, 300 );

    は、twentyeleven_setup という関数で行われています。
    さらに、この twentyeleven_setup という関数全体が、

    if ( ! function_exists( 'twentyeleven_setup' ) ):

    意訳すると「twentyeleven_setupという関数が存在しなければ」という条件分岐によって括られています。つまり、子テーマにおいて、twentyeleven_setup 関数を定義しておけば、親テーマの twentyeleven_setup は条件分岐によって、読み込まれないことになります。

    このことから、子テーマに、親テーマの twentyeleven_setup 関数をそのままコピーして、

    add_image_size( 'small-feature', 500, 300 );

    の一文を削除すれば、small-feature の画像サイズは生成されなくなります。

    ただし、この small-feature は、ショーケース機能を利用する際に使われる可能性がありますので、留意してください。

    トピック投稿者 a1bo

    (@a1bo)

    >jdbbさん

    返信ありがとうございました。

    早速、リンク先のコードを試しましたが、やはり「不要な画像サイズ」が自動生成されます。それとは逆に「メディア設定で指定した画像サイズ」は生成されません。

    以上のことから、初心者ながらリンク先のコードを解読し、自分なりに考えたコードが下記になります。

    function paulund_remove_default_image_sizes( $sizes) {
        unset( $sizes['small-feature']);
        return $sizes;
    }
    add_filter('intermediate_image_sizes_advanced', 'paulund_remove_default_image_sizes');

    ↑これだと、不要な画像(small-feature)は生成されず、メディア設定で指定した画像は生成されます。

    コードの記述的には、これで問題ないのでしょうか? よろしくお願い致します。

    トピック投稿者 a1bo

    (@a1bo)

    >jim912さん

    返信ありがとうございました。子テーマ使用時の functions.php の読み込み順なども理解できました。

    それで、詳しく分からない部分が下記です。

    このことから、子テーマに、親テーマの twentyeleven_setup 関数をそのままコピーして、
    add_image_size( 'small-feature', 500, 300 );
    の一文を削除すれば、small-feature の画像サイズは生成されなくなります。

    この文章を自分なりに解釈した手順をまとめました。

    【手順】
    1:子テーマの functions.php 内に、
    add_image_size( 'small-feature', 500, 300 );
    をコピーする。

    2:親テーマの functions.php 内の、
    add_image_size( 'small-feature', 500, 300 );
    を削除する。

    以上の手順で宜しいのでしょうか? 理想としては、「親テーマの functions.php」は削除などの変更を加えたくありません(テーマアップデート際に元の状態に戻ってしまう可能性があるため)。

    よろしくお願い致します。

    モデレーター jim912

    (@jim912)

    1. 子テーマの functions.php に、親テーマの
      function twentyeleven_setup() {
      
      }

      を丸ごとコピー

    2. 子テーマのコピーしてきた中の
      add_image_size( 'small-feature', 500, 300 );

      を削除

    です。

    トピック投稿者 a1bo

    (@a1bo)

    >jim912さん

    返信ありがとうございました。上記の方法により、無事出来ました。丁寧に教えていただきありがとうございました。

    「jdbbさん」の方法もふまえて、どちらかを好みで使わせていただきます。

    トピック投稿者 a1bo

    (@a1bo)

    『uploadsフォルダ内に、“不要な画像サイズ” が自動生成されない方法』が出来たので、「解決済み」にさせていただきます。

    ありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「uploadsフォルダ内に、“不要な画像サイズ” が自動生成されないようにし」には新たに返信することはできません。