WordPress Kullanıcılarının Ortam Kitaplığı Erişimini Kısıtlamak

68

Varsayılan olarak, WordPress yazarların sitenizin medya kitaplığında tüm resimleri görmesini sağlar. Bir sürü konuk yazarı davet ederseniz bu sorunlu olabilir. Bu makalede, size WordPress medya kitaplığının kullanıcının kendi yüklemelerine erişimini nasıl kısıtlayacağınızı göstereceğiz.

Neden Ortam Kitaplığı Erişimini Kısıtlayalım?

WordPress, yazarların medya kitaplığındaki tüm dosyaları görmelerini sağlar. Ayrıca bir yönetici, editör veya diğer yazarlar tarafından yüklenen görüntüleri de görebilirler.

Diyelim ki yaklaşmakta olan bir ürünü veya anlaşmayı duyurmak için yeni bir yayın oluşturuyorsunuz. Web sitenizdeki yazarlar ve konuk yazarlar, ortam kütüphanesinde o makaleye yüklediğiniz görüntüleri görebilirler.

Yüklemeleriniz, kullanıcıların kendi makalelerine eklerken gördükleri ‘Medya Ekle’ pop-up penceresinde de görünür olacaktır.

Birçok web sitesi için, bu büyük bir iş olmayabilir. Bununla birlikte, çok yazarlı bir web sitesini çalıştırırsanız, bunu değiştirmek isteyebilirsiniz.

Kullanıcıların kendi yüklemelerine medya kitaplığının erişimini kolayca nasıl kısıtlayacağınıza bir göz atalım.

Yöntem 1: Bir Eklenti Kullanarak Ortam Kitaplığı Erişimini Sınırla

Bu yöntem daha kolaydır ve tüm kullanıcılar için önerilir.

Yapmanız gereken ilk şey, Restrict Media Library Access  eklentisini yükleyip etkinleştirmektir.

Bu eklenti için yapmanız gereken herhangi bir ayar yok.

Etkinleştirme üzerine, geçerli kullanıcının bir yönetici veya düzenleyici olup olmadığını görmek için ortam kitaplığı sorgusunu filtreler. Kullanıcı rolü bunların ikisiyle eşleşmiyorsa, yalnızca kullanıcının kendi yüklemelerini gösterir.

Yönetici veya düzenleyici kullanıcı rolüne sahip kullanıcılar tüm medya yüklemelerini her zamanki gibi görebilir.

Yöntem 2: Ortam Kitaplığı Erişimini Kod ile Kısıtla

İlk yöntem, medya kütüphanesine erişimi sınırlandırdığı ve çoğu yöneticinin ve editörün tüm medya yüklemelerini görüntüleyebilmesine olanak tanıdığı için çoğu web sitesi için geçerli olacaktır.

Bununla birlikte, özel bir kullanıcı rolü eklemek istiyorsanız veya yalnızca bir eklenti kullanmak istemiyorsanız, bunun yerine bu yöntemi deneyebilirsiniz. Eklenti tarafından kullanılan aynı kodu kullanır, ancak ihtiyaçlarınızı karşılamak için onu değiştirebilirsiniz.

Bu yöntem, WordPress dosyalarınıza kod eklemenizi gerektirir.

Aşağıdaki kodu WordPress functions.php dosyanıza veya siteye özel bir eklentiye eklemeniz gerekecek.

// Limit media library access
 
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );
function wpb_show_current_user_attachments( $query ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
        $query['author'] = $user_id;
    }
    return $query;
}
Bu kod, kullanıcının eklentileri etkinleştirip etkinleştirmeyeceğini veya diğer kullanıcıların yayınlarını düzenleyip düzenleyemediğini kontrol etmek için current_user_can işlevini kullanır. Kullanmazlarsa, kullanılan medya dosyalarını görüntülemek ve kullanıcının kimliğini sınırlamak için kullanılan sorguyu değiştirir.