Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 5 di 33
  • livello avanzato
Indice lezioni

I template tag nei temi di WordPress

I template tag nei temi di WordPress per prelevare informazioni dal database e generare dinamicamente output.
I template tag nei temi di WordPress per prelevare informazioni dal database e generare dinamicamente output.
Link copiato negli appunti

I template tag sono funzioni definite nel core di WordPress che prelevano informazioni dal database e generano dinamicamente un output, quest'ultimo può essere mandato direttamente a video o restituito come valore di una variabile.

Molti template tag generano informazioni relative a post e pagine, come il titolo, l'autore, la data di pubblicazione, etc. Questi tag vanno utilizzati all'interno del Loop. Altri tag generano informazioni di carattere generale e possono essere utilizzati al di fuori del Loop.

Tag frequentemente utilizzati

Tra i tag di utilizzo più frequente, bloginfo() fornisce un semplice esempio di come restituire a video informazioni sul sito Web corrente:

<h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>

L'argomento individua il tipo di informazione richiesta e la funzione invia direttamente l'output al browser. Il codice precedentemente proposto manda a video il seguente testo:

<h2 class="site-description">Un nuovo sito targato WordPress</h2>

Spesso l'output restituito a video non è costituito da una semplice stringa di testo, ma da un frammento di codice HTML:

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

the_ID() restituisce l'ID del post corrente in forma di stringa; post_class(), invece, restituisce un frammento di codice HTML, sicché l'output a video sarà:

<article id="post-90" class="post-90 post type-post status-publish format-standard hentry category-news">

Tra le molte decine di tag, è possibile individuare due sottogruppi che si presentano con caratteristiche omogenee: i tag con prefisso the_ e i tag con prefisso get_.

I tag the_

Il prefisso the_ individua un tag che manda a video un output. the_title() e the_permalink(), ad esempio, restituisce a video il titolo e il permalink di un post (o di una pagina) e deve necessariamente essere utilizzato all'interno del Loop. Si consideri questo esempio:

<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>

Con questa istruzione vengono stampati a video il permalink e il titolo di un post all'interno di un titolo delimitato da h2. Altri tag the_ di impiego comune sono:

Tag Descrizione
the_author() Produce una stringa con il nome dell'autore di un post.
the_author_meta() Mostra ogni altro tipo di informazione sull'autore del post.
the_time() e the_date() Mostrano ora e data di pubblicazione.
the_excerpt() e the_content() Mandano a video il riassunto e il contenuto principale del post.
the_category() e the_tags() Generano l'elenco delle categorie e dei tag post.

I tag get_

Se i tag the_ stampano un output a video, i tag get_ restituiscono una stringa da gestire via PHP. Il framework dispone, per molti tag the_, di un corrispondente tag get_. Così i tag get_permalink() e get_the_title() permettono di ottenere lo stesso risultato dell'esempio precedente:

<a href="<?php esc_url( get_permalink() ); ?>"><?php echo get_the_title(); ?></a></h2>

get_permalink() e get_the_title() possono essere utilizzati al di fuori del Loop, e quindi si prestano ad una molteplicità di impieghi. Altri tag di uso comune sono get_bloginfo(), get_the_author(), get_the_author_meta(), get_the_time(), get_the_date(), get_the_excerpt() e get_the_content() i cui nomi rendono facilmente intuibile la funzione svolta.

Tag condizionali

Sono funzioni che permettono di testare una condizione. Grazie a questi tag, è possibile generare un output alternativo a seconda del valore TRUE o FALSE restituito. is_single(), ad esempio, restituisce TRUE al caricamento di una pagina singola:

if ( is_single() ) :
	the_title( '<h1 class="entry-title">', '</h1>' );
else :
	the_title( '<h1 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h1>' );
endif;

Altri tag condizionali di uso corrente sono is_home() e is_front_page(), che testano se la pagina corrente sia la Home Page del sito Web corrente (blog o pagina statica); is_page(), che verifica che l'utente si trovi in una pagina statica; is_category(), che verifica la categoria del post corrente.

Include tags

Gli Include Tags, di cui si è già parlato nei capitoli precedenti, sono funzioni che includono il contenuto di specifici template. Si tratta dei seguenti template tags:

  • get_header()
  • get_footer()
  • get_sidebar()
  • get_template_part()
  • get_search_form()
  • comments_template()

Anche in questo caso i nomi dei tags rendono facilmente intuibile la funzione svolta

I parametri

Come tutte le funzioni PHP, i template tag possono accettare o meno argomenti. bloginfo(), ad esempio, accetta una stringa che individua il tipo di dato da mandare a video. Nel caso non venisse passato alcun argomento, bloginfo() stamperà il nome del sito Web corrente.
Alcuni tag accettano argomenti come ogni funzione PHP; a tal proposito si consideri la seguente istruzione:

<?php single_post_title( 'Title: ', TRUE ); ?>

Qui il primo argomento è un testo da visualizzare prima dell'output, il secondo stabilisce se la funzione deve mandare a video il testo, o restituirlo in una variabile PHP. Infine, alcuni tag accettano argomenti nella forma di array o di querystring:

<?php wp_list_categories( 'orderby=name&exclude=4,5&title_li=<h2>' . __('Events') . '</h2>&taxonomy=event' ); ?>

L'argomento passato alla funzione consiste in una querystring che imposta i valori di quattro parametri: orderby, exclude, title_li e taxonomy. In alternativa alla querystring, gli stessi parametri avrebbero potuto essere trasmessi come elementi di un array.

Riferimenti online

In questo capitolo si è fatto ampio riferimento al Codex di WordPress, e in particolare ai seguenti articoli:

Nel prossimo capitolo si parlerà nel dettaglio della gerarchia dei template.

Ti consigliamo anche