Home>Guide>Come filtrare gli articoli di WordPress per tassonomia personalizzata

Come filtrare gli articoli di WordPress per tassonomia personalizzata


Come filtrare gli articoli di WordPress per tassonomia personalizzata


Tra le impostazioni predefinite di WordPress c’è la possibilità di filtrare l’elenco degli articoli nel backend tramite la tassonomia di default, “Categorie”, oppure tramite data, con un semplice menu a tendina. Ma ti è mai capitato di aver registrato una tassonomia personalizzata (Custom taxonomy)? Chi lo ha già fatto, si sarà reso conto che la nuova tassonomia non è presente tra le possibilità di filtro nella pagina di backend relativa all’elenco articoli.

Ma non sarebbe comodo poter filtrare i tuoi articoli anche con questa nuova tassonomia, creando magari filtri combinati anche con quello delle categorie presente di default?
Bello sicuramente, ma fortunatamente assolutamente semplice!

  • Leggi l'articolo, ti bastano solo 1 minuto, 28 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

Il comportamento predefinito

Come anticipato, WordPress dispone di default solamente del filtro per categoria e per data nella pagina di elenco articoli:

Naturalmente, combinando questi due filtri possiamo visualizzare solamente gli articoli che soddisfano i criteri di scelta.


Filtrare gli articoli tramite tassonomie personalizzate

Ma ipotizza di aver creato una Custom taxonomy per gli articoli del tuo sito WordPress e di voler creare un ulteriore filtro che faccia riferimento alla nuova tassonomia, come fare?

È presto detto! A scopo esemplificativo, ipotizza di avere creato una nuova tassonomia “topic” e per crearne il filtro ti basta inserire nel file:

wp-content/themes/{nome_del_tema}/functions.php

che trovi nello spazio FTP del tuo sito ed inserire il codice:

// Aggiungo il filtro per argomenti agli articoli
add_action( 'restrict_manage_posts', function( $post_type, $which ) {
	// Applico solamente agli articoli
	if ( 'post' !== $post_type ) { return; }

	// Recupero i termini della tassonomia
	$terms = get_terms( 'topic' );

	// Visualizzo il filtro
	echo '<select name="topic" id="topic" class="postform">';
	echo '<option value="">' . esc_html__( 'All topics', 'code4life' ) . '</option>';

	// Visualizzo le opzioni
	foreach ( $terms as $term ) {
		printf(
			'<option value="%1$s" %2$s>%3$s (%4$s)</option>',
			$term->slug,
			( ( isset( $_GET['topic'] ) && ( $_GET['topic'] == $term->slug ) ) ? ' selected="selected"' : '' ),
			$term->name,
			$term->count
		);
	}
	echo '</select>';
}, 10, 2 );

La funzione appena inserita è molto semplice, non fa altro che:

  • Riga 4: controllare se il tipo di post su cui la si sta cercando di applicare è effettivamente un articolo (post)
  • Riga 7: recuperare tutti i termini della tassonomia, da inserire come opzioni nel menu a tendina del filtro
  • Righe 10-23: costruire il markup per la visualizzazione del menu a tendina che costituisce il filtro

Ed è tutto fatto! Ecco il risultato finale:


Considerazioni finali

Naturalmente, quello preso in esame nell’articolo è solamente una casistica particolare, utilizzata a scopo esemplificativo. Partendo dall’esempio, è possibile aggiungere più di un filtro personalizzato e modificando il controllo sul post type (riga 4) è ovviamente possibile creare filtri personalizzati per qualsiasi post type, anche di tipo custom.

Non ti resta che dare libero sfogo alla tua fantasia!



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Come personalizzare un input range con CSS

Come personalizzare un input range con CSS


Ecco un semplicissimo snippet che ti permette di dare un stile del tutto personalizzato agli elementi HTML5 di tipo input range.

Disabilitare le Emoji in WordPress

Disabilitare le Emoji in WordPress


Scopri come rimuovere gli scripts e gli stili legati alle Emoji, risparmiando risorse ed aumentando le performance del tuo sito WordPress.

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)