Utilizzo dei tag condizionali in WordPress
Pubblicato: 2012-12-27Diamo un'occhiata a come eseguire funzioni personalizzate nei tuoi temi in diverse posizioni di hook in base a determinate condizioni che vengono soddisfatte e restituiscono sì.
Se utilizzi un framework di temi premium come Genesis, avrai accesso a una guida per l'utente.
La guida per l'utente contiene generalmente frammenti di codice contenenti funzioni personalizzate.
Queste funzioni personalizzate possono essere eseguite in posizioni di temi specifici utilizzando i tuoi ganci di azione dei temi.
Tutto quello che devi fare è incollare lo snippet di codice nel file functions.php del tuo bambino per personalizzare le funzioni del tuo tema.
Ogni framework del tema utilizza hook diversi, tuttavia fanno praticamente la stessa cosa, vengono solo dati nomi diversi come:
thesis_after_post genesis_after_post woo_post_after
Questi 3 esempi vengono eseguiti tutti al termine del post in cui potresti voler aggiungere un'area widget, un banner o una casella di attivazione e-mail con pulsanti di condivisione/seguente social.
Ma cosa succede se si desidera che la funzione personalizzata venga eseguita solo in una posizione di hook specifica in base a determinate condizioni come? Per esempio:
- Solo su singoli post: is_single()
- Solo sui post in una categoria specifica: is_category()
- Solo su una pagina di archivio: is_archive()
- Solo nella home page: is_home()
L'aggiunta di un tag condizionale alla tua funzione personalizzata che viene eseguita nella posizione dell'hook dei tuoi temi, ti consente di eseguire la funzione solo se la condizione restituisce yes.
Una volta che ti senti a tuo agio nell'usare le funzioni personalizzate e capisci dove e come funzionano gli hook di azione dei tuoi temi, puoi fare un ulteriore passo avanti usando tag condizionali o istruzioni condizionali come li chiamano alcuni sviluppatori.
Quindi, come si utilizzano le istruzioni condizionali?
Esempi di tag condizionali
Ecco alcuni tag condizionali comuni utilizzati dai designer di WordPress e dagli sviluppatori di temi e plugin.
is_home() is_category() is_single() is_page()
In primo luogo, diamo un'occhiata all'utilizzo di tag condizionali basati su più istruzioni.
è_singolo e in_categoria
if (is_single() && in_category('134'))
if (is_single() && in_category('web-design'))
Entrambi questi frammenti di codice fanno esattamente la stessa cosa e contengono 2 tag condizionali.
Il primo usa l'id di categoria 134 e il secondo usa la categoria slug 'web-design'.
Qualsiasi funzione che includi con questo codice verrà eseguita solo su singoli post nella categoria che contiene un ID post di 134 o uno slug di pagina 'web-design'. Questa è chiaramente la categoria del web design.
Parametri
Come puoi vedere nell'esempio sopra, puoi utilizzare diversi parametri con tag condizionali come:
- ID postale
- Titolo del post
- Post Slug
Alcuni tag condizionali come il tag is_home() non escludono alcun parametro probabilmente perché non ne hanno davvero bisogno.
è_pagina
if (is_page('4289'))
if (is_page('contact'))
Entrambi questi tag condizionali fanno esattamente la stessa cosa.
Il primo utilizza le pagine post id di 4289 e il secondo il nome della pagina e lo slug 'contatto'.
Le funzioni che includi con questo tag verranno eseguite solo nella pagina dei contatti.
Tag condizionali della home page
Gli usi più comuni per l'utilizzo dei tag is_home sarebbero la visualizzazione di qualcosa solo sulla home page o l'esclusione della home page dalla funzione.
è casa
if (!is_home()
Questo codice contiene il ! prima del tag condizionale home_page in modo che escluda la home page dalla funzione.
if (is_home()
Questo codice crea una condizione che si applica solo alla home page.
Esempio di lavoro
Se copi e incolli il codice seguente utilizzando un editor di codice, nel file delle funzioni dei temi figlio, scoprirai che stampa il testo dopo l'intestazione solo su singoli post.
add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }
Il codice sopra usa la posizione dell'hook genesis_entry_footer
con il tag condizionale is_singular('post')
e stampa il testo dopo il contenuto solo sui singoli post. Questo è un classico esempio che mostra come utilizzare i tag condizionali in una funzione personalizzata con i tuoi action hook dei temi.
Tag condizionali con array
Puoi anche aggiungere un array alla tua istruzione condizionale.
is_page (array
if (is_page(array('contact','37290'))
Puoi aggiungere più pagine a questo array semplicemente includendole all'interno di questo array separate da una virgola.
Questa funzione verrà eseguita solo sulla pagina dei contatti e sulla pagina che contiene un ID post di 37290.
Output di testo/HTML
Se vuoi semplicemente visualizzare del testo o dell'HTML, puoi aggiungere un'istruzione condizionale ai tuoi ganci delle azioni dei temi. Il modo più semplice per farlo sarebbe incollare il tag condizionale con il tuo HTML usando un plug-in hook.
if ( ! is_home()) { echo'Your Text Here'; }
Prendiamo una funzione comune con action hook e aggiungiamo un tag condizionale.
Tag condizionali nella Genesi
Puoi facilmente aggiungere uno dei frammenti di codice del tema Genesis da utilizzare nei temi di StudioPress e includere un tag condizionale con il codice.
/** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }
Questo codice consente all'utente di definire lo stile della pagina della categoria video utilizzando una classe personalizzata.
Il parametro utilizzato è lo slug del video tutorial, tuttavia puoi utilizzare il post.id o il titolo nel tuo tag condizionale.
Tag condizionali in tesi
Prendiamo una funzione personalizzata dalla guida per gli utenti dei temi fai-da-te e aggiungiamo una dichiarazione condizionale.
function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );
Questo nasconderà il menu di navigazione solo nella pagina dei contatti.
Potremmo utilizzare parametri diversi per la pagina dei contatti, inclusi lo slug della pagina, l'ID del post o il nome della pagina.
Dove mettere il codice?
Se stai utilizzando un framework per temi premium, puoi incollare il codice nel tuo file functions.php dei temi figlio.
Questi framework offrono tutti un plug-in o un gestore di hook che ti consente di incollare il codice nella posizione di hook in cui desideri che il codice venga eseguito in base ai tag condizionali.
- Woo hook manager
- Ganci semplici di Genesis
- Ganci per tesi, progressi e WordPress
Chiaramente, non sarà necessario includere l'action hook nel codice se si utilizza un hook manager.
Un'altra opzione è incollare i tag condizionali direttamente nei file del modello dei temi nella posizione in cui desideri eseguire la funzione in base alle tue condizioni. Questa non è una procedura ottimale poiché perderai il codice quando aggiorni il tema.
È sempre consigliabile creare un tema figlio e apportare modifiche ai file modello lì. Meglio ancora, usa le funzioni personalizzate che lo sviluppatore del tema ha già creato e incolla il codice nel file delle funzioni del tema figlio con i tuoi tag condizionali, una volta che il test ha dimostrato che funziona.
Tag ed esempi condizionali di WordPress
Troverai un elenco di tutti i tag condizionali di WordPress con esempi nel Codice di WordPress.
Tag condizionali specifici del tema
Alcuni temi premium utilizzano anche i propri tag condizionali che sono unici per la loro struttura del tema.
Woo Commerce è uno di questi: Esempi:
is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.
Scopri di più sull'utilizzo dei tag condizionali con Woo Commerce.
Conclusione
L'utilizzo di un tema che offre una vasta gamma di frammenti di codice testati dallo sviluppatore è un enorme vantaggio. In questo modo puoi scegliere uno qualsiasi dei tag condizionali offerti da WordPress e aggiungerlo al tuo snippet di codice per personalizzare il tuo tema come preferisci.