Come aggiungere la logica condizionale al tuo tema WordPress

Pubblicato: 2021-02-25

Costruire un sito Web con WordPress offre una grande flessibilità con ciò che puoi fare in termini di design e funzionalità. E, man mano che approfondisci lo sviluppo del tema, scoprirai che ci sono momenti in cui è necessario scegliere come target una pagina, una categoria o un tipo di post specifico per qualcosa di speciale. È qui che la logica condizionale può rendere il tuo lavoro molto più semplice.

La logica condizionale è una potente caratteristica dei linguaggi di programmazione (PHP, nel nostro caso). In sostanza, possiamo utilizzare il codice per verificare se esiste una determinata condizione e quindi fare qualcosa di specifico se tale condizione è soddisfatta. Un semplice esempio di questo potrebbe essere il controllo per vedere se un utente è attualmente sulla home page del nostro sito. Usando la logica condizionale, potremmo scegliere di caricare uno slider o altro contenuto speciale in quella situazione.

Per quanto riguarda WordPress, ci sono una serie di utili tag condizionali integrati nel software che ci consentono di testare tutti i tipi di scenari. Sono ben documentati e ti consentono di portare un livello superiore di funzionalità al tuo sito.

Oggi daremo un'occhiata ad alcuni dei tag condizionali più comunemente usati e a come potresti implementarli nel tuo sito.

Una nota sull'uso dei tag condizionali

I tag condizionali sono frammenti di codice PHP e dovrebbero entrare nel tema attivo del tuo sito. Ci sono un certo numero di posti in cui puoi usare la logica condizionale all'interno di un tema.

Se non l'hai già fatto, è una buona idea familiarizzare con la Gerarchia dei modelli di WordPress per una spiegazione di come funzionano i file dei temi.

E, prima di provare a implementare un nuovo codice su un sito live, è meglio configurare un ambiente di sviluppo (staging) per testare prima le cose. Ricorda che una mossa falsa con PHP può dare al tuo sito la temuta "Schermata bianca della morte". Quindi presta molta attenzione ai test prima di lavorare su un sito live.

è casa()

Questo provoca grande confusione tra gli sviluppatori. Osservando il tag, presumeresti che is_home() venga utilizzato per controllare la home page del tuo sito. Non è così.

In realtà cerca la pagina assegnata come pagina dei tuoi post, che è impostata in Impostazioni> Lettura all'interno della dashboard di WordPress. Per impostazione predefinita, WordPress utilizza la tua home page per elencare i post, ma la maggior parte dei siti tende invece a utilizzare una home page statica.

Quindi, ad esempio, se hai assegnato una pagina denominata "Blog" come pagina dei tuoi post, è ciò che is_home() cercherà.

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

è_front_page()

Al contrario, is_front_page() cerca qualsiasi pagina impostata come home del tuo sito, indipendentemente dal fatto che sia statica o meno. Certo, questa non è la cosa più ovvia al mondo quando stai imparando a creare i tuoi temi. Ma sapere quale tag usare è fondamentale.

La cosa bella di questo particolare tag è che, anche se dovessi assegnare una pagina diversa come home page in seguito, continuerai a scegliere come target il posto giusto. Esistono modi più espliciti per indirizzare le pagine, ma questo ti tiene coperto in caso di modifica.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() e is_page()

Ciascuno di questi tag svolge una doppia funzione. is_single() cerca di vedere se l'URL corrente è un post. Potrebbe essere un post del blog standard, un allegato o appartenere a un tipo di post personalizzato.

Allo stesso modo, is_page() restituirà true se l'URL corrente è una pagina. Per impostazione predefinita, entrambi i tag hanno come target qualsiasi contenuto che rientra nell'ambito di una pagina o di un post. Questo è un filo comune tra molti tag condizionali.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Ma puoi anche sfruttare questi tag per indirizzare un post o una pagina specifici aggiungendo un ID o uno slug.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

L'utilizzo di un array ti consentirà di indirizzare più contenuti.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() e has_term()

Le tassonomie svolgono un ruolo importante nel modo in cui i contenuti sono organizzati su un sito. Due dei più comuni sono categorie e tag, che hanno i propri tag condizionali. Ma WordPress ci consente anche di creare le nostre tassonomie.

Ad esempio, se il tuo sito contiene recensioni musicali, potresti avere una tassonomia chiamata "Genere". Da lì, avresti potuto elencare generi musicali specifici all'interno di quella tassonomia come "Rock", "Hip-Hop" e "Jazz".

is_tax() come target una pagina di archivio della tassonomia. Rimanendo con il nostro esempio di recensione musicale, questo tag si attiva (entra in vigore) quando siamo nella pagina di archivio per ciascuno dei generi specifici.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() viene utilizzato per indirizzare il post corrente in base alla tassonomia a cui appartiene. Questo è utile se, ad esempio, vogliamo aggiungere una grafica speciale per i post di ogni genere musicale sul nostro sito.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Dopo aver acquisito familiarità con la gerarchia dei modelli di un tema, potresti voler creare i tuoi modelli di pagina personalizzati. is_page_template() ti consente di scegliere come target il modello di pagina corrente utilizzato (indipendentemente dal fatto che sia personalizzato o meno). Puoi controllare se viene utilizzato un modello di pagina o cercarne uno specifico.

Tuttavia, devi stare attento quando cerchi un modello di pagina specifico. Poiché questo tag verifica l'esistenza di un nome file, il condizionale potrebbe smettere di funzionare se il nome del modello viene modificato. Dovrai aggiornare il tuo codice per riflettere eventuali modifiche al nome file.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Tutte le condizioni soddisfatte

Sebbene questa fosse solo una breve introduzione su come utilizzare la logica condizionale, si spera che stuzzichi il tuo appetito per saperne di più.

Una volta che padroneggi i condizionali, sarai in grado di personalizzare il tuo sito in modi che altrimenti sarebbero quasi impossibili.

Possono darti un controllo dettagliato sull'aspetto e sul layout del tuo tema, pur continuando a beneficiare di tutti i vantaggi dell'utilizzo di un CMS.