WordPress: Visualizzare solo i “contenuti” di cui si è autore

wordpress current user filter

Nelle situazioni in cui più persone partecipano alla preparazione degli articoli sullo stesso sito a volte ci si trova davanti ad una grande quantita di contenuti in cui si fatica a filtrare le proprie bozze.

Quando necessario, per semplificare le cose, aggiungo questa piccola funzione che filtra post, pagine e Custom Post Type sulla base dell’utente loggato verificando 3 cose:

  1. se non faccio parte del gruppo “administrator” (gli admin continueranno e vedere tutti i contenuti)
  2. se sono in area di amministrazione
  3. se non sono nella pagina dei media (in modo che possa vedere tutte le foto caricate)
/*
 * @miziomon
 * Filter content by current user
 *
 */
add_filter('pre_get_posts', function ($query) {
    global $pagenow, $user_ID;
	
	if( !current_user_can('administrator') && $query->is_admin && 'upload.php' != $pagenow   ){
		$query->set('author',  $user_ID);
	}
	return $query;
});

L’hook usato è il “pre_get_posts” che ci permette di aggiungere una condizione prima di effettuare la query rendendo il tutto molto più performante.

Queste poche righe vanno aggiunte nel file function.php oppure linkate tramite un include o require.

Maurizio Pelizzone

Scritto da

Maurizio Pelizzone

Sono Maurizio Pelizzone, sviluppatore WordPress da oltre vent'anni e consulente di intelligenza artificiale a Torino, co-fondatore di Mavida. Realizzo plugin e integrazioni su misura per WordPress e WooCommerce, automazioni dei processi con n8n e agenti AI, e tengo corsi e workshop su Claude Code, prompt engineering e vibe coding, in presenza a Torino o da remoto. Sono speaker ai WordCamp e autore della guida gratuita in italiano a Claude Code; se vuoi parlarmi di un progetto puoi prenotare una call conoscitiva.

Scopri chi sono

Nessun commento

Scrivi il primo.

Scrivi un commento

Nessun commento

Scrivi un commento

I commenti sono moderati: il tuo comparirà dopo la lettura. L'email non viene pubblicata. I campi con * sono obbligatori.