Medya Yükleyiciyi kullanarak yanlış boyutlu görüntülerin yüklenmesini reddet


12

Post Edit ekranında Özel Alanlara resim eklemek için çok katı bir ayar üzerinde çalışıyorum. En iyi senaryom, kullanıcı söz konusu özel değer için yanlış boyutta bir resim yüklemeye çalıştığında bir Özel Hata iletisi eklemek olacaktır.

Bunu herhangi bir özel yükleyici ile yapabileceğimin farkındayım, ancak bunu normal Medya Yükleyici ile yapmayı tercih ederim. Ayrıca zaten dosya adlarını doğrulamak ve genel gereksinimlere dayalı özel hata iletileri oluşturmak için kullandığım wp_handle_upload_prefilter farkındayım . Şu anda ihtiyacım olan şey, yüklediğimiz alana göre yüklemeleri reddetmek için özel gereksinimleri kullanmanın bir yoludur.

Ayrıca, Yüklendiğinde Öne Çıkan Görüntüyü Gönderi Görüntülerinden Farklılaştırmanın da farkındayım, ancak ön kayıt çözümü istedim.

Bu şöyle görünecektir:

resim açıklamasını buraya girin

wp_handle_upload_prefilterHangi alanla ilgili olduğumuzu nasıl bildireceğimize (ya da benzerine) ilişkin herhangi bir fikriniz var mı?


İlginç soru. Genel olarak konuşursak, daha sonra yol boyunca daha fazla farklılaşma için geçebilir özel medya yükleyici kalıcı komut dosyası aracılığıyla özel bir değişken geçmek düşünüyorum. Bu tek yol olabilir, ancak bu konuda% 100 emin değilim. Devam edip ararsanız, bununla ilgili ihtiyacınız olan bilgileri bulacaksınız. Daha sonra geri dönün ve sorunuzu bu somut bilgilerle tamamlayın veya kendiniz çözerseniz, çözümünüzü cevap olarak gönderin. İyi şanslar!
Nicolai

Eğer özel dersem , örneğin burada tartışıldığı gibi WordPress Medya Yükleyicinin özel kullanımı anlamına gelir .
Nicolai

Evet, daha önce Flash Yükleyici günlerinde böyle bir şey yaptım. Bu sefer daha temiz bir yol izliyordum, ama bu mümkün olmayabilir. Buna bakacağım, teşekkürler!
moraleida

Seni duyuyorum, ama aslında bunu yapmanın bir yolu olduğunu sanmıyorum. Ayrıca, dediğim gibi, bunu yapmanın başka bir yolunu göremiyorum / bilmiyorum, ama bunu temizlemek için daha fazla bilgi ile birlikte birileri gelebilir.
Nicolai

1
Bununla ilerliyor musunuz? Değilse, ancak üzerinde çalıştığınız bazı kodlarınız varsa, gönderin. Daha fazla temel varsa, soruya bir ödül vermeye hazırım.
Nicolai

Yanıtlar:


4

İşleyicinizde 'hata' ayarladıysanız, hata mesajı görüntülenir ve yüklemeyi iptal eder

add_filter( 'wp_handle_upload_prefilter', 'custom_upload_filter' );

function custom_upload_filter( $file ) {
    $image_info   = getimagesize( $file['tmp_name'] );
    $image_width  = $image_info[0];
    $image_height = $image_info[1];

    if ( $image_with !== 800 || $image_height !== 600 ) {
        $file['error'] = __( 'Images must be sized exactly 800 * 600', 'your_textdomain' );
    }
    return $file;
}

Kullanıcınız farklı bir boyut yüklemeyi denerse mesaj şöyle olacaktır:

thefile.png has failed to upload due to an error  
Size must be exactly 800 * 600

wp_handle_upload_prefilterYükleme işleminin çok erken geldiğini unutmayın , bu nedenle dosyanın düzgün bir şekilde yüklendiğini (HTTP açısından) ve boyutu test etmeden önce bir görüntü olup olmadığını test etmek isteyebilirsiniz.

Ref: wp_handle_upload()çekirdek dosyadaki işlevwp-admin/includes/file.php


Evet, bu zaten dosya adları ve svg özelliklerini doğrulamak için yapıyorum. Şu anda ihtiyacım olan, farklı alanlar için farklı kısıtlamalar uygulayabilmem için hangi alanın o yükleme tarafından doldurulduğunu belirten başka bir parametreyi bu (veya başka) filtreye geçirmenin bir yoludur. Bu aslında şu an beklemede. Soruyu daha sonra bulgularımla güncelleyeceğim.
moraleida
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.