2013-03-15 13 views
6

Sto creando un sito wordpress in cui l'utente registrato ha la possibilità di creare il proprio post tramite wp_editor() sul frontend, ma solo un post.wordpress mostra solo l'utente multimediale ha caricato in wp_editor

Ora voglio limitare l'utente a poter vedere solo il suo media caricato. Io uso il seguente script nel functions.php, che funziona nel backend. Quindi, se un utente accede alla sezione media nel back-end, vedrà solo i suoi media caricati.

Ma se l'utente passa al pop-up "insert media" sul frontend wp_editor, può ancora vedere il media caricato da tutti gli utenti.

function restricted_media_view($wp_query) { 
if (strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php') !== false 
|| strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php') !== false) { 
    if (!current_user_can('level_5')) { 
     global $current_user; 
     $wp_query->set('author', $current_user->id); 
    } 
    } 
} 
add_filter('parse_query', 'restricted_media_view'); 

Hai qualche idea calda per risolvere questo fastidio? Grazie!

risposta

11

Si potrebbe provare questo plugin: http://wordpress.org/extend/plugins/view-own-posts-media-only/

alternativa provare questo:

add_action('pre_get_posts','ml_restrict_media_library'); 

function ml_restrict_media_library($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; 
} 

Fonte: http://wpsnipp.com/index.php/functions-php/restricting-users-to-view-only-media-library-items-they-upload/#comment-810649773

+0

Grazie !! Il plugin sembra fare il trucco per me! :) – Sebsemillia

+0

Grande. Sono contento che ha funzionato. –

+0

Grazie, è stato davvero difficile da provare e trovare! –

6

in alternativa dal WordPress 3.7

add_filter('ajax_query_attachments_args', "user_restrict_media_library"); 
function user_restrict_media_library( $query) { 
    global $current_user; 
    $query['author'] = $current_user->ID ; 
    return $query; 
} 
+1

Anche per me funziona correttamente su 3.8, grazie :) –

+1

Un metodo leggermente diverso è ora fornito nella documentazione: http://codex.wordpress.org/Plugin_API/Filter_Reference/ajax_query_attachments_args#Examples – David

1

utilizzare API/filtro di riferimento/ajax query attachm Ent args per WP 4.3.1 e lavori

add_filter('ajax_query_attachments_args', 'show_current_user_attachments', 10, 1); 

function show_current_user_attachments($query = array()) { 
    $user_id = get_current_user_id(); 
    if($user_id) { 
     $query['author'] = $user_id; 
    } 
    return $query; 
} 

appena add on functions.php

o controllare questo link WP Codex