WordPress Kendi Eklediği Ortamı Gösterme

Geçen gün wordpress ile bir ilan sitesi tasarlarken lazım oldu. Öncelikle siteye kullanıcılar içerik sağlayıcısı olarak üye olabileceklerdi. Kullanıcı rolleri gereği, içerik sağlayıcılar yazdıkları içeirklere ortam ekleyemezler. Öncelikle onlara ortam ekleme izni vermek lazımdı. Temanın functions.php dosyasına aşağıdaki kodları ekleyerek onların ortam eklemesine imkan sağladık.

//-->Üyelere Resim Yükleme İzni Ver 
    if ( current_user_can('contributor') && !current_user_can('upload_files') )
    add_action('admin_init', 'allow_contributor_uploads');
    function allow_contributor_uploads() {
        $contributor = get_role('contributor');
        $contributor->add_cap('upload_files');
    }  

Daha sonra da diğer kullanıcıların ekledikleri ortamları içerik yazdıkları özel sayfada göremesinler diyerek, sadece kendi ekledikleri ortamları göstermek için de aşağıdaki kodları kullandım.

//--> Kendi Eklediği Resmi Görsün Sadece
add_action('pre_get_posts','ortami_kes');

function ortami_kes( $wp_query_obj ) {
    global $current_user, $pagenow;
    if( !is_a( $current_user, 'WP_User') )
    return;
    if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' )
    return;
    if( !current_user_can('manage_media_library') )
    $wp_query_obj->set('author', $current_user->ID );
    return;
}

Tabi wordpress yönetici paneline girdiğinde kullanıcı diğer eklenmiş resimleri görebiliyor.

Yorum Yaz:

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir