Le categorie nei riassunti

Le categorie nei riassunti

Inserire le categorie nei riassunti non è poi così difficile ma se non facciamo alcune modifiche non riusciremo mai a fare qualcosa di gradevole visivamente.
Questo è il codice che ho usato per la progettazione di un mio tema:

ID, $taxonomy, array( 'fields' => 'ids' ) );
$separator = ', ';
if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) {
$term_ids = implode( ',' , $post_terms );
$terms = wp_list_categories( array(
'title_li' => '',
'style' => 'none',
'echo' => false,
'taxonomy' => $taxonomy,
'include' => $term_ids,
'order' => 'ASC',
'orderby' => 'id',
) );
$terms = rtrim( trim( str_replace( '
', $separator, $terms ) ), $separator );
echo $terms;
} ?>

Cercherò di spiegarlo riga per riga:

La stringa $taxonomy = ‘category’; è una tassonomia predefinita.
Tag, categorie e post in WordPress sono tassonomie predefinite quindi per dire a lui cosa vogliamo mostrare è necessario partire con questa riga di codice inserendo tra le virgole cosa ci serve.

Esistono anche tassonomie personalizzate che vengono usate principalmente per la creazione di plugin ma questa è tutta un’altra storia.

Con $post_terms diciamo a WordPress che vogliamo, in questo caso, stampare a video le categorie di un determinato post.

Dopo di che usando wp_get_object_terms gli comunichiamo di prendere tali valori dal database senza però memorizzarli nella cache.

Se invece vogliamo che tali dati siano memorizzati dobbiamo usare la funzione get_the_terms.
Per un loop di riassunti dove potrebbero esserci tanti valori visibili sconsiglio vivamente di non usarla perché riempireste la cache dei visitatori costringendoli a svuotarla.

Con $post->ID, $taxonomy, array( ‘fields’ => ‘ids’) dico a WordPress carica il post cercandolo dal suo id, con taxonomy gli dico di stamparlo a video e poi con l’array dico di eseguire il tutto!

La stringa $separator = ‘, ‘; indica che tra una categoria e un’altra deve esserci una virgola e uno spazio. Se viene lasciato tutto vuoto apparirà di default la classica lista puntata di WordPress.

La variabile if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) ti dice se ci sono informazioni stampa a video quanto chiesto altrimenti metti un messaggio di errore.

$term_ids = implode( ‘,’ , $post_terms ); questa stringa ti dice ok esiste allora incomincia a visualizzarli mettendo come separatore una virgola.

$terms = wp_list_categories questa stringa visualizza e recupera l’elenco html delle categorie cercando informazioni da quanto indicato nel codice già descritto.

Detto questo se nelle parentesi tonde che seguono lasciamo tutto vuoto, WordPress di default inserisce le categorie nei riassunti in ordine di inserimento.
Se invece vogliamo mettere un’ordine a tutto dobbiamo creare un array.

Cerchiamo di capire cosa dicono le singole query messe all’interno della parentesi tonda del nostro array:

title_li = testo che verrà usato per il classico elemento della lista, se la stringa è vuota sarà disabilitato.
style = lo stile utilizzato per visualizzare l’elenco delle categorie.
Se mettiamo list le categorie verranno inserite come un elenco non ordinato.
Se lo lasciamo vuoto o inseriamo un altro valore le categorie verranno separate dal tag.
Io ho messo none perché non voglio che ci sia l’impostazione di default.
echo = qui dobbiamo indicare se restituire oppure no i valori indicati. Io ho messo false quindi dico di non farlo.
taxonomy = nome della tassonomia da restituire se non mettiamo niente di default metterà category.
include = ho dovuto necessariamente usarlo per richiamare i vari id delle categorie altrimenti non riuscivo a ordinare il tutto come volevo.
order e orderby = li ho già spiegati nella lezione Query orderby di WordPress. Quindi potete vedere il tutto direttamente li.

Con la stringa $terms = rtrim( trim( str_replace( ‘ ‘, $separator, $terms ) ), $separator ); diciamo finalmente a WordPress di prendere tutte le informazioni trovate e visualizzarle.

Con echo $terms; richiamiamo quanto appena comunicato nella stringa sopra e quindi come per magia appariranno tutte le categorie collegate ad uno specifico post.

Non è stato facile spiegare questo codice anche perché per costruirlo ho dovuto assemblare diversi codici e prima di trovare la soluzione desiderata ho lavorato quasi una settimana!

Magari qualcuno riesce a trovare una soluzione similare con molto meno codice!

Nel Codex di WordPress potete trovare diverse informazioni!

Le categorie nei riassunti

Artgallery75

Grafico in ambiente web e fotografo d'immagine da più di 20 anni. Conosce perfettamente Adobe Photoshop, Illustrator, Nikon Capture e Wordpress. Linguaggi di programmazione conosciuti: html, css, asp e php. Conoscenza del framework Bootstrap.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: