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:
- Template Tags
- Stepping into Template Tags
- Anatomy of a Template Tag
- How to pass tag parameters
- Conditional Tags
- Include Tags
Nel prossimo capitolo si parlerà nel dettaglio della gerarchia dei template.