Ortam Kütüphanesine ekstra filtre eklemek -2

Ortam Kütüphanesine ekstra filtre eklemek -2


Warning: file_get_contents(https://codex.wordpress.org/Function_Reference/get_allowed_mime_types): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/u989750086/domains/wpadami.com/public_html/wp-content/plugins/s-fonks/s-fonks.php on line 89

Ortam kütüphanesine ekstra filtre eklemek diye bir yazı yazmıştım geçmiş zamanlarda. Bu yazı ile olayı biraz daha geliştirip, kütüphane içerisine JPG, PNG, GİF ve muhtelif ses, video dosyaları için filtreler oluşturalım. “Buradaki amaç nedir?” diye soranlar için şöyle açıklayayım. Sitenizde benim gibi çokça resim kullandığınızı düşünün (çoğu yazıma resim ekliyorum aslında ama makale içine değil) ve bunların diğer dosyalarla karıştığını. Yarın öbür gün yaklaşık 5000 dosya olduğunda iş çığırından çıkacaktır. Mükerrer resimleri yüklemekten kaçınmak için filtreleme sistemi idealdir. Arama alanı da kullanılabilir ama görselin adını unuttuğunuzda pek işe yaramayacaktır. En azından ayrıştırma yapmak daha kolay erişime imkan tanıyacaktır. Hem de sizin yüklediklerinizi belli bir kategorilendirme sisteminde tutmanızı sağlayacaktır.

Ortam Kütüphanesine Filtre Eklemek

Önceki yazıda bulunan koda şöyle bir göz gezdirelim.

function ortam_filtresi_ekle( $post_mime_types ) {  
    //Filtre için ekleyeceğimiz dosya türü, PDF için application/pdf .
    $post_mime_types['application/pdf'] = array( __( 'PDFler' ), __( 'PDFleri Yönet' ), _n_noop( 'PDF <span class="count">(%s)</span>', 'PDF <span class="count">(%s)</span>' ) );  
    
    return $post_mime_types;  
}  
add_filter( 'post_mime_types', 'ortam_filtresi_ekle' );  

Burada PDF dosyasının filtrelenmesi için WordPress’in post_mime_types filtresine müdahale etmiştik. Normal şartlarda WordPress ortam kütüphanesinde şu ayrımları Görsel | Ses Dosyası | Video | Eksiz yapıyor. Bunlar genel tanımlar olan image | audio | video | unattached karşılıkları. Burada unattached olan dosyalar herhengi bir yazıyla ilişkilendirilmemiş olan, sadece ortam kütüphanesine yüklediğiniz dosyalarınız, bunları tabii ki diğer filtreler içinde görebilirsiniz. Eksiz dosyalar haricinde kalan filtreler ise ortam kütüphanesine yüklediğiniz dosyaların türlerine göre ayrıştırma (filtre) sütunları.

Benim imaj dosyaları için yaptığım filtrelerin önizlemesini aşağıda görebilirsiniz. (tıklarsanız büyür)
Ortam kütüphanesine filtre eklemek
Yazının devamında bir ton dosya için filtremiz olacak :)

Kod;

Şimdi gelelim özelleştirilmiş olan kodlara. Aşağıdaki kodlarda Ortam Kütüphanesine PDF, JPG, PNG, GİF, MP3, OGG, WAV, MP4, AVİ, MKV ve FLV dosyalarını filtreleyebilme özelliği katacağız. Liste uzun diye korkmayın. Filtre içinde adı geçen dosya yok ise filtre butonu görünmez. Önceki yazıda verdiğim kodu kullanıyorsanız bu kodu uygulamadan önce lütfen onu siliniz. Keza fonksiyon adlarını aynı bıraktım. Aşağıdaki kodları temanızın içinde bulunan functions.php dosyası içerisine en altta bulunan ?> php kapatma etiketinden önce ekleyiniz.

Aşağıda belirtilen kod temanızın ve sisteminizin en önemli dosyası olan functions.php dosyasına müdahale gerektirmektedir. Bu dosya wp-content/themes/temanızınadı/ klasöründe bulunmaktadır. Dosyaya müdahale etmeden lütfen yedek alınız.
function ortam_filtresi_ekle( $post_mime_types ) {  
	//Filtre için ekleyeceğimiz dosya türü, PDF için application/pdf .
    $post_mime_types['application/pdf'] = array( __( 'PDFler' ), __( 'PDFleri Yönet' ), _n_noop( 'PDF <span class="count">(%s)</span>', 'PDF <span class="count">(%s)</span>' ) ); 
    //Filtre için ekleyeceğimiz dosya türü imajlar, JPG, PNG, GİF
    $post_mime_types['image/jpeg'] = array( __( 'JPG' ), __( 'JPGleri Yönet' ), _n_noop( 'JPG <span class="count">(%s)</span>', 'JPG <span class="count">(%s)</span>' ) );  
    $post_mime_types['image/png'] = array( __( 'PNG' ), __( 'PNGleri Yönet' ), _n_noop( 'PNG <span class="count">(%s)</span>', 'PNG <span class="count">(%s)</span>' ) );  
    $post_mime_types['image/gif'] = array( __( 'GİF' ), __( 'GİFleri Yönet' ), _n_noop( 'GİF <span class="count">(%s)</span>', 'GİF <span class="count">(%s)</span>' ) );  
	//Filtre için ekleyeceğimiz dosya türü ses, MP3, OGG, WAV
	$post_mime_types['audio/mpeg'] = array( __( 'MP3' ), __( 'MP3leri Yönet' ), _n_noop( 'MP3 <span class="count">(%s)</span>', 'MP3 <span class="count">(%s)</span>' ) );  
    $post_mime_types['audio/ogg'] = array( __( 'OGG' ), __( 'OGGleri Yönet' ), _n_noop( 'OGG <span class="count">(%s)</span>', 'OGG <span class="count">(%s)</span>' ) );  
    $post_mime_types['audio/wav'] = array( __( 'WAV' ), __( 'WAVleri Yönet' ), _n_noop( 'WAV <span class="count">(%s)</span>', 'WAV <span class="count">(%s)</span>' ) );  
	//Filtre için ekleyeceğimiz dosya türü video, AVİ,MP4,MKV
	$post_mime_types['video/mp4'] = array( __( 'MP4' ), __( 'MP4leri Yönet' ), _n_noop( 'MP4 <span class="count">(%s)</span>', 'MP4 <span class="count">(%s)</span>' ) );  
    $post_mime_types['video/avi'] = array( __( 'AVİ' ), __( 'AVİleri Yönet' ), _n_noop( 'AVİ <span class="count">(%s)</span>', 'AVİ <span class="count">(%s)</span>' ) );  
    $post_mime_types['video/x-matroska'] = array( __( 'MKV' ), __( 'MKVleri Yönet' ), _n_noop( 'MKV <span class="count">(%s)</span>', 'MKV <span class="count">(%s)</span>' ) );  
    $post_mime_types['video/x-flv'] = array( __( 'FLV' ), __( 'FLVleri Yönet' ), _n_noop( 'FLV <span class="count">(%s)</span>', 'FLV <span class="count">(%s)</span>' ) );  

    return $post_mime_types;  
}  
add_filter( 'post_mime_types', 'ortam_filtresi_ekle' );  

Ben daha fazla eklemek istiyorum diyorsanız aşağıdaki adreste bulunan WordPress desteklenen dosya türlerini kullanıp kod içerisinde bulunan $post_mime_types[''] değişkenini çoğaltıp değiştirebilirsiniz.

Selametle