Stai cercando un modo per limitare gli utenti alla visualizzazione solo degli elementi della libreria multimediale che caricano? Sebbene probabilmente esista un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per limitare gli utenti alla visualizzazione solo degli elementi della libreria multimediale che caricano in WordPress.
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
function my_files_only( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false ) {
if ( !current_user_can( 'level_5' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'my_files_only' );
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: I 7 migliori servizi VPN per utenti WordPress e come creare un modulo di donazione WordPress.
ci siamo appena resi conto che, sebbene questo script funzioni nel web WordPress, la versione Android/mobile della libreria multimediale è ancora visibile a tutti
una piccola modifica che ho apportato al codice per farlo funzionare sul front-end nella mia pagina del profilo
//if ( false !== strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/upload.php’ ) ) { if ($wp_query->query_vars[‘post_type’]==”attachment”){
in questo modo funziona correttamente.
Grazie Prasanna, ho registrato un account Disqus solo per ringraziarti.
Anche io
[...] dopo un po' di ricerche su Google ho trovato molti riferimenti (qui, e qui, ad esempio) a questo [...]
Ha funzionato! (WP 3.8.1) Grazie!
ciao, grazie per il codice. molto utile!
tuttavia, altri utenti sono ancora in grado di visualizzare gli allegati se hanno un link diretto. c'è un modo per impedirlo? cioè solo il proprietario del media (e l'admin) possono vedere gli allegati. altri utenti o il pubblico non possono vederli.
Grazie.
Ho inserito quel codice... ma ho un contatore errato per i post multimediali...
L'utente corrente non ha post multimediali... mentre ha Tutti (15) | Immagini (15) | Non allegati (2)
voglio mostrare il conteggio per l'utente corrente.. non per tutti….
Ho appena nascosto tutti i numeri di conteggio con css: subsubsub .count {display: none; }
Çok te?ekkür ederim – Grazie
Grazie mille per questo…. Role scoper stava interferendo con un altro plugin e questa era l'unica funzionalità che volevo, ovvero limitare le immagini… Grazie per averlo aggiornato per funzionare con la nuova libreria multimediale, funziona perfettamente.
Qualcuno sa come limitare anche l'utente quando carica un file dalla funzione inserisci o modifica post? Infatti, quando premo il pulsante Aggiungi media, la finestra popup mi mostra la scheda Libreria multimediale, con tutti i media caricati da tutti gli utenti. Sto usando WP 3.5.1.
Grazie!
Guarda la mia risposta a designlabCPH sopra. Inserisci questa funzione nel tuo file functions, e la libreria multimediale sarà limitata solo ai file degli utenti.
Non funziona per me 🙁 Voglio che gli utenti non amministratori possano visualizzare solo i propri file, anche quando creano post, vedere solo le proprie immagini quando aggiungono immagini in evidenza, ecc.
Non funziona per me 🙁 Voglio che gli utenti non amministratori possano visualizzare solo i propri file, anche quando creano post, vedere solo le proprie immagini quando aggiungono immagini in evidenza, ecc.
Non funziona per me 🙁 Voglio che gli utenti non amministratori possano visualizzare solo i propri file, anche quando creano post, vedere solo le proprie immagini quando aggiungono immagini in evidenza, ecc.
Non funziona per me 🙁 Voglio che gli utenti non amministratori possano visualizzare solo i propri file, anche quando creano post, vedere solo le proprie immagini quando aggiungono immagini in evidenza, ecc.
Ora funziona! Grazie mille!
Ho usato il plugin Role Scoper. Ho cercato di capire tutto questo per tutto il giorno. Role Scoper permetterà solo all'utente connesso di vedere il proprio contenuto e i propri post per impostazione predefinita. Puoi anche cambiarlo se vuoi. Libreria multimediale privata per autori 😉
c'è un modo per impostare questa riga di codice per limitare la libreria multimediale solo ai collaboratori. In questo modo i collaboratori potranno vedere solo i media che caricano e gli amministratori potranno vedere tutto.
c'è un modo per programmare questa riga di codice per applicarla solo a specifici livelli di appartenenza? (cioè i collaboratori possono vedere solo i loro caricamenti multimediali, ma gli amministratori possono vedere tutto)
Sto usando WP 3.3.1 e questo non funziona. C'è un aggiornamento del codice? Grazie.
Guarda la mia risposta qui sopra. Ho pubblicato una funzione che funzionerà con il nuovo gestore multimediale (WP 3.5+)
Ho una domanda Kevin, come impedire a un collaboratore di caricare file multimediali?
Ciao Rian,
Alla riga 3 vedrai “level_5” in questa pagina di WordPress ci sono dettagli sui livelli utente, puoi semplicemente cambiare quel livello. http://codex.wordpress.org/User_Levels#User_Level_5_2
non avevo notato che il ruolo predefinito del collaboratore non può caricare alcun file multimediale. l'ho provato ieri sera... haha.
Grazie mille Kevin! 🙂
Prego, in qualsiasi momento,
Grazie Kevin, è molto utile, ma come correggere ‘numero totale di file’?
Sono contento che ti piaccia lo snippet! Beh, il totale è ancora corretto poiché i file esistono, anche se capisco il tuo punto. Ci darò un'occhiata in futuro per vedere se posso pubblicare uno snippet.
grazie per il post. proprio quello che stavo cercando.
ho apportato una piccola modifica >> aggiungo anche il file media-upload.php a questa riga di codice. questo filtrerà anche le immagini / media sopra l'editor wysiwyg.
presta
Ciao Sheila,
Dove/Cosa hai pubblicato in termini di codice nel file media-upload.php? Ricevo un errore quando incollo il codice. Grazie in anticipo!
Ho riscontrato un problema, la libreria multimediale mostra ancora il contenuto completo nella finestra popup di inserimento media nel post. (lo stesso che per i modelli di altre pagine)
tuttavia, ho aggiunto get global $post, e aggiunto un'altra condizione per i post.
‘/wp-admin/media-upload.php?post_id=’.$post->ID.’&type=image&tab=library’
ma non ha funzionato..
Ho risolto aggiungendo una seconda clausola
“|| strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/media-upload.php’ ) !== false”
Come diavolo si fa a far funzionare questo in WP 3.5?
Ho provato di tutto (credo, anche se non sono un programmatore PHP) inclusa l'aggiunta della tua soluzione sopra – e semplicemente non riesco a farlo funzionare.
Ho bisogno che solo gli Amministratori possano vedere tutti i media nella finestra popup della libreria, e tutti gli altri (inclusi gli editor) possano vedere solo le proprie immagini... Potresti spiegarmelo per favore? :)
Usa Role Scoper se non l'hai ancora capito, amico. Risolve esattamente questo problema. È così per impostazione predefinita quando installi il plugin. Sia per la Libreria Media che per i post. A titolo informativo.
Ho passato ore oggi solo per risolvere quel problema di caricamento degli utenti, e ho scoperto che è l'unico codice che funziona. Grazie!
Devi cambiare alcuni parametri affinché questo funzioni con il nuovo gestore multimediale.
Puoi usare questa funzione (nota che ho creato una capacità "manage_media_library". Solo se l'utente ha questa, vedrà file diversi dai propri):
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;
}
Stavo cercando esattamente questo: ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’
mille grazie!
Dove hai messo questo?
come nuovo plugin! bene, questo funziona per me!
ottima soluzione di codice Patrick – ha risolto il mio problema subito – Vorrei aver trovato questo a dicembre. : ) grazie!
Ho provato il tuo codice nel plugin, direttamente in function.php ma non funziona. Ho Wordpress 3.5.1 e voglio usarlo nel front-end con il pulsante aggiungi media della funzione wp_editor.
Ho provato in wp-admin ma non funziona neanche lì.
Hai qualche idea sul perché non funziona???
Usato questo, tanti complimenti a te!
Questo snippet è molto utile per il mio sito multi-blogger. Dovresti trasformarlo in un plugin per WP! grazie =)
Fantastico, sono contento che ti piaccia lo snippet, non sono sicuro che valga la pena aggiungerlo come plugin anche se potrebbe essere configurato come tale.
Dovresti, sto avendo difficoltà a trovare questo nel pool dei plugin e alla fine ho rinunciato e cercato risorse esterne, il che mi ha portato qui. Amo il tuo blog, snippet diretti e mirati allo scopo. Sto imparando molto da qui!
Mi hai illuminato la giornata, Grazie Chard! =)
Nessun problema, sono contento che ti piaccia il sito – visitalo regolarmente, pubblichiamo quotidianamente!