Utilizarea etichetelor condiționate în WordPress
Publicat: 2012-12-27Să aruncăm o privire la cum să executați funcții personalizate în temele dvs. diferite locații de cârlig în funcție de îndeplinirea anumitor condiții și revenirea da.
Dacă utilizați un cadru temă premium precum Genesis, veți avea acces la un ghid al utilizatorilor.
Ghidul utilizatorului conține, în general, fragmente de cod care conțin funcții personalizate.
Aceste funcții personalizate pot fi executate în anumite locații ale temei folosind cârligele de acțiune ale temelor.
Tot ce trebuie să faceți este să lipiți fragmentul de cod în fișierul functions.php pentru temele copilului pentru a vă personaliza funcțiile temei.
Fiecare cadru temă folosește cârlige diferite, dar fac aproape același lucru, pur și simplu li se dau nume diferite, cum ar fi:
thesis_after_post genesis_after_post woo_post_after
Aceste 3 exemple se execută toate după ce postarea s-a terminat, unde este posibil să doriți să adăugați o zonă de widget, un banner sau o casetă de opt-in pentru e-mail cu butoane de partajare socială/urmărire.
Dar dacă doriți ca funcția personalizată să se execute într-o locație specifică de cârlig, pe baza anumitor condiții, cum ar fi? De exemplu:
- Doar pe postări unice: is_single()
- Doar pentru postările dintr-o anumită categorie: is_category()
- Doar pe o pagină de arhivă: is_archive()
- Doar pe pagina principală: is_home()
Adăugarea unei etichete condiționate la funcția personalizată care se execută în locația cârligului pentru teme, vă permite să executați funcția numai dacă condiția returnează da.
Odată ce vă simțiți confortabil să utilizați funcțiile personalizate și înțelegeți unde și cum funcționează cârligele de acțiune ale temelor, puteți face un pas mai departe utilizând etichete condiționate sau declarații condiționate, așa cum le numesc unii dezvoltatori.
Deci, cum folosesc instrucțiunile condiționate?
Exemple de etichete condiționate
Iată câteva etichete condiționale comune utilizate de designerii WordPress, precum și de dezvoltatorii de teme și pluginuri.
is_home() is_category() is_single() is_page()
În primul rând, să aruncăm o privire la utilizarea etichetelor condiționate bazate pe mai multe declarații.
is_single & in_category
if (is_single() && in_category('134'))
if (is_single() && in_category('web-design'))
Ambele fragmente de cod fac exact același lucru și conțin 2 etichete condiționate.
Primul folosește id-ul categoriei 134, iar al doilea folosește categoria slug „web-design”.
Orice funcție pe care o includeți cu acest cod se va executa numai pe postări individuale din categoria care conține un ID de postare de 134 sau pagina slug „web-design”. Aceasta este în mod clar categoria de web design.
Parametrii
După cum puteți vedea în exemplul de mai sus, puteți utiliza diferiți parametri cu etichete condiționate precum:
- ID post
- Titlul postării
- Post Slug
Unele etichete condiționate, cum ar fi eticheta is_home() nu fac excepție de niciun parametru, probabil pentru că nu au nevoie cu adevărat de niciunul.
is_page
if (is_page('4289'))
if (is_page('contact'))
Ambele etichete condiționale fac exact același lucru.
Primul folosește ID-ul postării paginii de 4289, iar al doilea numele paginii și slugul „contact”.
Funcțiile pe care le includeți cu această etichetă se vor executa numai pe pagina de contact.
Pagina de pornire Etichete condiționate
Cele mai frecvente utilizări pentru utilizarea etichetelor is_home ar fi pentru afișarea a ceva doar pe pagina de pornire sau excluderea paginii de pornire din funcție.
este acasa
if (!is_home()
Acest cod conține ! înainte de eticheta condițională home_page, astfel încât exclude pagina de pornire din funcție.
if (is_home()
Acest cod creează o condiție care se aplică numai paginii de pornire.
Exemplu de lucru
Dacă copiați și lipiți următorul cod folosind un editor de cod, în fișierul cu funcții ale temelor pentru copil, veți găsi că imprimă text după antet numai pe postări individuale.
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'; } }
Codul de mai sus folosește poziția de cârlig genesis_entry_footer
cu eticheta condiționată is_singular('post')
și tipărește textul după conținut numai pe postări individuale. Acesta este un exemplu clasic care arată cum să utilizați etichetele condiționate într-o funcție personalizată cu cârligele de acțiune pentru teme.
Etichete condiționate cu matrice
De asemenea, puteți adăuga o matrice la declarația dumneavoastră condiționată.
is_page (matrice
if (is_page(array('contact','37290'))
Puteți adăuga mai multe pagini la această matrice pur și simplu incluzându-le în această matrice, separate prin virgulă.
Această funcție se va executa numai pe pagina de contact și pe pagina care conține un ID de postare 37290.
Ieșirea text/HTML
Dacă doriți pur și simplu să afișați ceva text sau HTML, puteți adăuga o declarație condiționată la cârligele de acțiuni ale temelor. Cel mai simplu mod de a face acest lucru ar fi să lipiți eticheta condiționată cu HTML-ul dvs. folosind un plugin de cârlig.
if ( ! is_home()) { echo'Your Text Here'; }
Să luăm o funcție comună cu cârligul de acțiune și să adăugăm o etichetă condiționată.
Etichete condiționate în Genesis
Puteți adăuga cu ușurință unul dintre fragmentele de cod temă Genesis pentru a fi utilizat în temele StudioPress și puteți include o etichetă condiționată cu codul.
/** 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; }
Acest cod permite utilizatorului să stileze pagina categoriei video folosind o clasă personalizată.
Parametrul utilizat este slug-ul video-tutorial, totuși ați putea folosi post.id sau titlul în eticheta dumneavoastră condiționată.
Etichete condiționate în teză
Să luăm o funcție personalizată din ghidul utilizatorilor de teme DIY și să adăugăm o declarație condiționată.
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' );
Aceasta va ascunde meniul de navigare numai pe pagina de contact.
Am putea folosi diferiți parametri pentru pagina de contact, inclusiv slug-ul paginii, ID-ul postării sau numele paginii.
Unde să pun codul?
Dacă utilizați un cadru de temă premium, puteți lipi codul în fișierul functions.php pentru temele copilului.
Toate aceste cadre oferă un plugin sau un manager de cârlig care vă permite să lipiți codul în locația de cârlig în care doriți ca codul să fie executat pe baza etichetelor dumneavoastră condiționate.
- Woo hook manager
- Genesis Simple Hooks
- Teză, progres și cârlige WordPress
În mod clar, nu va trebui să includeți cârligul de acțiune în cod dacă utilizați un manager de cârlig.
O altă opțiune este să inserați etichetele condiționate direct în fișierele șablon de teme în locația în care doriți să executați funcția în funcție de condițiile dvs. Aceasta nu este cea mai bună practică, deoarece veți pierde codul când actualizați tema.
Întotdeauna cele mai bune practici de a crea o temă copil și de a face modificări la fișierele șablon acolo. Mai bine, utilizați funcțiile personalizate pe care dezvoltatorul dvs. de teme le-a creat deja și inserați codul în fișierul cu funcțiile temei copilului cu etichetele dvs. condiționate, odată ce testarea dovedește că funcționează.
Etichete și exemple condiționale WordPress
Veți găsi o listă cu toate etichetele condiționale WordPress cu exemple în Codexul WordPress.
Etichete condiționate specifice temei
Unele teme premium folosesc, de asemenea, propriile etichete condiționate, care sunt unice pentru cadrul lor de teme.
Woo Commerce este unul dintre acestea: Exemple:
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.
Aflați mai multe despre utilizarea etichetelor condiționate cu Woo Commerce.
Concluzie
Folosirea unei teme care oferă o gamă largă de fragmente de cod testate de dezvoltator este un bonus uriaș. În acest fel, puteți alege oricare dintre etichetele condiționate oferite de WordPress și le puteți adăuga la fragmentul de cod pentru a vă personaliza tema în orice mod doriți.