Bazı özel yazı türleri için varsayılan görüntü boyutlarının oluşturulmasını nasıl devre dışı bırakabilirim?


12

'Küçük resim', 'orta' ve 'büyük' ​​boyutların gerekli olmadığı özel yazı türü kullandım. Bu boyutları devre dışı bırakmam ve her özel yazı türü için hangi görüntü boyutunun gerekli olduğunu ayarlayabileceğim işlev veya eklenti oluşturmam gerekiyor.

İlk adımım wp-include / media.php dosyasından get_intermediate_image_sizes işlevini bağlamaktır. Bu kodu function.php dosyasına ekledim ama çalışmıyor :(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

UPD: Bu satırı media.php dosyasında düzenlemek işe yarıyor. Değişiklik oluşturmadan sonraki varsayılan türler.

$image_sizes = array('thumbnail', 'medium', 'large');

Ama işimi kancama nasıl yapabilirim?


1
buna da bir cevap istiyorum
urok93

2
Bu filtreyi böyle kullanmıyorsunuz. Varsayılan boyutları temizlemek için çok düşük bir öncelikle eklemeniz ve boş bir dizi döndürmeniz gerekir. Ancak bu sorununuzu çözmeyecektir, çünkü bu tüm yazı türlerini etkileyecektir. Mevcut WP sürümünde istediğinizi yapmanın bir yolu olduğunu düşünmüyorum. WP geliştiricilerinden bu işlevin $attachment_idiçindeki filtreye bağımsız değişken eklemesini istemeyi deneyin . Bu şekilde
kancanızın

Benim adımım sadece deneme değil tam çözüm değil. Filtreyi doğru bir şekilde nasıl kullanabilirim? PS Link için teşekkür ederim ..
Bohdan Hdal

WP'de şimdi mümkün kılan herhangi bir değişiklik var mı?
Drivingralle

Değişiklik yok. Hala aynı problem.
Bohdan Hdal

Yanıtlar:


7

Şu anda sahip olduğunuz tek çözümün tüm ara görüntü boyutlarını devre dışı bırakmak olduğunu düşünüyorum:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

Ardından, ek türüne (ve dolayısıyla üst postasına) erişiminiz olan 'wp_generate_attachment_metadata' içine tutarak bunları yazı türüne bağlı olarak manuel olarak oluşturun:

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

Son add_filter'a ilettiğiniz 10 ve 2 parametreleri nelerdir?
Luke

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.