SEO Guru

WordPress e i Conditional Tags

Quasi tutti conosciamo ormai l’efficacia e la qualità dei blog targati WordPress, strumento fondamentale per la realizzazione di blog appunto, ma di qualunque sito in generale.

La sua migliore caratteristica secondo me, oltre al suo spirito open-source, alle sue molte funzionalità, alla miriade di plug-in disponibili (di cui parleremo in altri post) e alla sua comunità di sviluppo, sta nella “malleabilità”.

Non fraintendetemi, il sistema è solido come una roccia sia per quanto riguarda il codice, che dal punto di vista della sicurezza; mi riferisco alle (quasi) infinite possibilità di customizzazione che questo CMS offre e più specificatamente al codice php e le sue funzioni.

Nel sito ufficiale di WordPress è disponibile codex tools, una guida completa che fornisce informazioni utili non solo per l’installazione e l’utilizzo, ma soprattutto per la personalizzazione del nostro CMS preferito.

In questa sezione troviamo infatti i Template Tags (Tag Modello), funzioni che si possono utilizzare nel template del sito per visualizzare le informazioni in modo dinamico o comunque personalizzato, fornendo gli strumenti per renderlo più individuale e interessante.

Quelli che più ci interessano sono i Conditional Tags (Tag Condizionali).

Un tag condizionale permette di rendere l’esperienza di navigazione dei visitatori diversa a seconda della pagina che si sta navigando. Sono frammenti di codice PHP (in questo caso funzioni php), che consentono di “fare qualcosa” in base al tipo di pagina in cui l’utente si trova. Noi li utilizziamo ampiamente anche su questo sito.

wordpress codex

Vediamo brevemente come usare i tag condizionali WordPress.

Poniamo di voler mostrare un piccolo messaggio di benvenuto per i visitatori, ma solamente nella home page:

<?php if ( is_home() ) { ?>

<p>Benvenuto visitatore, vuoi iscriverti al mio feed?
Questo messaggio verrà visualizzato solo nella home page.</p>


<?php } ?>

Il tag condizionale è usato con un’istruzione if in Php, utilizza quindi i tag Php. Notare come il tag php si chiude per visualizzare l’html e si riapre nuovamente per la parentesi di chiusura dell’istruzione if.

Ora il nostro messaggio viene visualizzato solo se (if) ci troviamo nella homepage (is_home()).

Se volessimo mostrare il messaggio nelle categorie useremo is_category(), che vale per tutte le categorie appunto, ma che può essere applicato anche ad una sola a nostra scelta is_category('1') (dove 1 è l’id della categoria), oppure più categorie is_category(array(1,2,3)).

Possiamo anche usare, oltre all’id, il nome della categoria is_category('Siti Web'), o lo slug is_category('web-design'), o tutte e tre le cose insieme:

is_category(array(1,'Siti Web','web-design')).

Stessa cosa per:

is_page()
(le pagine)

is_single()
(i post singoli)

is_tag()
(i tag)

in_category()
(i post contenuti nelle categorie)

is_archive ()
(ogni pagina di archivio)

Essendo usati all’interno di un’istruzione if in php, possiamo combinarli come più ci interessa tramite l’integrazione degli operatori AND (&&) o OR (||).

Potremmo avere, per esempio, l’esigenza di visualizzare uno specifico contenuto solo se ci troviamo in determinate categorie o in determinati post contenuti in quelle categorie, oppure un altro contenuto se si tratta di pagine.

La soluzione è molto semplice e c’è data dall’istruzione:

<?php if ( is_category(array(1,2,3,4)) ||
is_single() && in_category(array(1,2,3,4)) ) { ?>


<p>Sei nella categoria 1, 2, 3 o 4,
oppure in un post contenuto nella categoria 1, 2, 3 o 4.</p>


<?php } elseif ( is_page() ) { ?>


<p>Sei in una pagina.</p>


<?php } ?>

Una guida più esaustiva la trovate ovviamente nel Codex di WordPress.

conditional tags

Aggiungi un commento