Crearea unui șablon de pagină pentru WordPress. Șabloane de pagină în WordPress
În acest articol, voi vorbi despre modalități de a crea șabloane pentru paginile persistente WordPress. Fiecare metodă are argumente pro și contra. Dar înainte de a începe, să vorbim pe scurt despre ce sunt paginile și cum diferă acestea de postări.
În WordPress, puteți crea pagini (pagină) și postări (post). Ele diferă prin faptul că intrările: intră în feedul de pe pagina principală; înregistrările sunt clasificate; înregistrările nu pot fi arborescente, iar paginile: sunt utilizate pentru conținut precum „Despre mine”, „Contacte”, „Harta site-ului”; nu au categorii, dar au o structură arborescentă. Înregistrările sunt de obicei destinate informațiilor cronologice (după timp adăugat) și pagini pentru o structură arborescentă independentă de timp. De exemplu, acest articol este publicat ca „intrare” în secțiunea „Cod”, iar linkurile din meniul antet duc la paginile: Funcții.
Paginile sunt similare cu înregistrările - sunt situate în același tabel de bază de date și datele lor sunt aproape aceleași: titlu, text, câmpuri suplimentare etc. Ambele sunt postări, dar de diferite tipuri: paginile sunt în formă de arbore și sunt organizate prin crearea de pagini părinte și copil, iar postările sunt combinate pe categorii și etichete. În WordPress, puteți crea tipuri de postări suplimentare, de tip arbore sau nu.
Crearea de pagini în WordPress
Este adesea necesar să se creeze un șablon de pagină separat, astfel încât rezultatul informațiilor să difere de alte pagini. Prin crearea unui șablon de pagină în WordPress, puteți schimba complet pagina: eliminați bara laterală, subsolul, antetul, puteți schimba pagina dincolo de recunoaștere. De exemplu, pe acest site, pagina pe care sunt afișate codurile fișierelor WordPress se modifică astfel.
Metoda 1: șablon de pagină printr-un fișier cu un nume arbitrar și conectarea acestuia în panoul de administrare (metoda clasică)
Acesta este cel mai comun mod de a crea un șablon de pagină în WordPress. Pentru a face acest lucru, trebuie să creați un fișier .php, de exemplu, tpl_my-page.php în folderul cu teme și chiar la începutul fișierului introduceți o notă că fișierul creat este un șablon pentru pagini:
Acum, când creăm o pagină în panoul de administrare, în blocul „Proprietăți pagini”, putem selecta un „șablon”:
De la WordPress 4.7. aceste șabloane de pagină pot fi create pentru orice tip de postare, nu doar pentru pagină. Pentru a face acest lucru, completați comentariile cu rândul: Template Post Type: post, page , unde postare, page sunt numele tipurilor de postare cărora le aparține șablonul.
/* Numele șablonului: șablonul paginii mele Tipul postării șablonului: post, pagină, produs */
Avantaje:
- Numai intrările cu modelul specificat pot fi preluate. De exemplu, puteți afișa toate paginile cu șablonul „Servicii” (fișierul servises.php). Uneori este convenabil. Numele fișierului șablon este stocat în câmpul meta _wp_page_template, așa că pentru a afișa pagini cu șablonul specificat, trebuie să creați o interogare meta câmp (consultați WP_Query).
După ce am creat un șablon, îl putem aplica convenabil pe diferite pagini. De exemplu, puteți crea un șablon fără bară laterală și îl puteți utiliza pe pagini diferite.
Defecte:
După ce ați creat fișierul șablon în folderul cu teme, trebuie să mergeți la panoul de administrare și să instalați șablonul pentru pagină. În timpul dezvoltării, acest lucru nu este întotdeauna convenabil. Prin urmare, dacă intenționați să utilizați șablonul pentru o singură pagină, utilizați a doua metodă.
Cum functioneaza:
Când accesați pagina de editare a postării arborelui din panoul de administrare, WordPress caută toate fișierele șablon pentru linie:
Nume șablon: ***
Șirul poate fi localizat oriunde și în orice mod în fișier.
Toate fișierele cu șiruri similare sunt colectate și afișate în selecția șablonului din blocul „Atribute pagină”.
La publicarea unei pagini, câmpul personalizat _wp_page_template conține numele fișierului șablon sau implicit dacă șablonul nu este specificat:
wp_page_template = implicit
_wp_page_template=tpl_my-page.php
Apoi, atunci când utilizatorul vizitează pagina, WordPress va verifica meta câmpul _wp_page_template, dacă este setat un șablon, atunci fișierul șablon este utilizat. În caz contrar, căutarea șablonului de pagină continuă prin ierarhie.
Metoda 2: șablon de pagină printr-un fișier cu un nume specific (ierarhia fișierelor șablon)
Când o pagină este creată, i se atribuie o etichetă (slug, nume alternativ). Este folosit în adresa URL a paginii. Și poate fi schimbat:
Pentru a crea un șablon în acest fel, trebuie să cunoașteți pagina slug și să creați un fișier în folderul cu teme. Să presupunem că melcul nostru ca în imagine este contacts , apoi vom crea un fișier page-contacts.php în temă. și completați-l cu codul necesar (puteți copia conținutul din fișierul șablon page.php și îl puteți edita singur). Asta e, acum când vizităm pagina ar trebui să vedem un nou șablon. În mod similar, puteți lua ID-ul (să spunem 12) al paginii și puteți crea fișierul page-12.php .
Avantaje:
Nu este nevoie să mergeți la panoul de administrare și să instalați fișierul șablon. Șablonul începe să funcționeze imediat după crearea fișierului. Convenabil pentru dezvoltare.
Defecte:
Șablonul este creat doar pentru o anumită pagină. Depinde de slug-ul paginii, dacă se schimbă șablonul nu va funcționa. Dacă utilizați un ID, atunci dependența de slug dispare, dar devine neclar în fișierul temă căreia îi aparține șablonul (dacă există mai multe șabloane cu ID).
Practic inutil când scrieți șabloane, darămite plugin-uri. Poate fi folosit atunci când vă editați site-ul în care slug-ul sau ID-ul paginii este cunoscut în prealabil.
Cum functioneaza:
WordPeress alege ce fișier să folosească în următoarea ordine (fișierele trebuie să fie în rădăcina temei):
- (any_name).php (când se folosește un șablon de pagină)
- pagina-(post_label).php
- pagina-(post_id).php
- pagina.php
- singular.php
- index.php
Metoda 3: șablon de pagină prin filtrul „template_include” (codare)
Aceasta este o modalitate avansată, este mai complexă, dar, împreună cu complexitatea, deschide oportunități mari. Folosind această metodă, puteți seta un șablon pentru orice pagină, postare, categorie, orice publicație de pe site sau chiar un grup de publicații. Vezi exemple pentru descrieri:
// filtrul trece variabila $template - calea către fișierul șablon. // Schimbând această cale, schimbăm fișierul șablon. add_filter("template_include", "my_template"); function my_template($template) ( # analog al celei de-a doua metode // dacă aceasta este o pagină cu portofoliul slug, utilizați fișierul șablon page-portfolio.php // folosiți eticheta condiționată is_page() if(is_page("portfolio") ))( if ($new_template = locate_template(array("page-portfolio.php"))) return $new_template ; ) # șablon pentru grupul de categorii // acest exemplu va folosi fișierul din folderul temă tpl_special-cats.php // ca șablon pentru categorii cu ID 9 , titlu „Necategorizat” și slug „php” if(is_category(array(9, „Uncategorized”, „php”)))( return get_stylesheet_directory() . „/tpl_special-cats.php”; ) # șablon pentru postare după ID // fișierul șablon se află în folderul plugin /my-plugin/site-template.php global $post; if($post->ID == 12)( return wp_normalize_path(WP_PLUGIN_DIR) . " /my-plugin/site- template.php"; ) # șablon pentru pagini de tip arbitrar „carte” // se presupune că fișierul șablon book-tpl.php se află în folderul temă global $post; if($post ->post_type == "carte")( return get_stylesheet_ director() . „/book-tpl.php”; ) returneaza $template; )
Un astfel de cod trebuie plasat în fișierul functions.php al temei sau într-un plugin, sau conectat cumva. După cum puteți vedea din exemplu, în timpul filtrului template_include etichetele condiționate funcționează deja, variabilele globale sunt setate: $wp_query , $post , etc.
Avantaje:
- Puteți crea un șablon când scrieți un plugin.
Puteți seta un șablon pentru orice pagină sau grup de pagini. Carte blanche aproape completă în acțiune.
Defecte:
Necesitatea de a scrie cod și de a-l conecta separat (de exemplu, în funcțiile.php ale temei).
Șabloanele de pagină din WordPress sunt concepute pentru a oferi o notă personală paginilor dvs. Cel mai adesea, toate paginile au un șablon sau o variantă a șablonului cu și fără bară laterală. De acord, acest lucru nu este suficient pentru un zbor de fantezie. În această lecție, vom analiza cel mai bun mod de a crea propriile șabloane de pagină.
Ce sunt șabloanele de pagină
O temă în WordPress poate avea mai multe șabloane diferite pentru afișarea paginilor, postărilor, arhivelor și așa mai departe. Printre șabloanele pe care le analizăm acum se numără șabloanele pentru Pagini. Când creați o pagină în WordPress, puteți alege un șablon personalizat pentru aceasta:
Diferite teme pot oferi diferite șabloane de pagină, cum ar fi un șablon pentru o pagină cu lățime completă (fără bară laterală), cu o bară laterală din stânga în loc de una din dreapta și așa mai departe. Absența acestei opțiuni la editarea paginilor înseamnă că tema nu a declarat șabloane suplimentare.
Șabloanele de pagină pot fi utilizate pentru mai multe pagini, iar unele teme creează șabloane foarte specifice concepute pentru a fi utilizate o singură dată.
Cum să-ți creezi propriul șablon de pagină
Când utilizați o temă copil, puteți plasa și șabloane de pagină în directorul rădăcină sau subdirectorul, iar dacă apare o actualizare pentru tema părinte, atunci fișierele dvs. nu vor fi afectate.
Când să nu folosiți șabloane de pagină
Dacă cu șablonul dvs. schimbați doar stilul și nu structura unei anumite pagini, atunci puteți face acest lucru fără a utiliza șabloane suplimentare.
WordPress are o funcție de ajutor body_class() care este folosită de majoritatea temelor existente. Cu clasele rezultate de această funcție, puteți schimba stilul oricărei pagini folosind codul CSS:
/* Ascunde bara laterală de la pagina 123 */ body.page-id-123 #secondary ( display: none; )
De asemenea, șabloanele de pagină nu trebuie utilizate pentru a modifica opțiunile principale ale buclei WordPress, cum ar fi adăugarea unui tip de postare personalizat sau excluderea unei categorii. În astfel de scopuri, există un filtru special pre_get_posts în WP_Query() .
Dacă aveți întrebări despre lucrul cu șabloane de pagină în WordPress, voi fi bucuros să vă răspund în comentarii.
Nu cu mult timp în urmă, a fost publicat un manual despre. A fost de natură a unei introduceri la etapa inițială, dar a inclus și exemple practice. Aș dori să continui această direcție, doar să fii atent la pagini. Materialul pe această temă este multifuncțional, adică foarte mare. Prin urmare, va fi dificil să deschideți toate caracteristicile șablonului de pagină într-un singur articol. Dar măcar vom încerca să atingem detalii indirecte și, bineînțeles, principalii parametri.
Ierarhia paginilor
Ierarhie - aceasta înseamnă succesiunea de la treapta cea mai înaltă până la partea de jos sau invers. În cazul nostru, aceasta este ordinea de autoritate a fișierelor șablon pentru pagină. Când un utilizator ajunge pe una dintre paginile dvs., WordPress își afișează conținutul pe baza opțiunii de creare a paginii (mai multe despre asta mai jos).
Șablon personalizat- notat printr-un comentariu condiționat în partea de sus în interiorul unui fișier cu un nume arbitrar.
page-slug.php– un șablon cu numele paginii (etichetă). Dacă nu a fost specificat niciun șablon personalizat, atunci WordPress folosește acel tip ca implicit.
pagina-id.php– identificatorul unic al paginii.
pagina.php- un fișier standard responsabil de conținutul paginilor.
index.php- fișier index. Dacă WordPress nu găsește niciunul dintre șabloanele de mai sus, atunci în mod implicit va fi responsabil pentru pagini.
Atenţie. Există, de asemenea, un șablon de pagină în WordPress numit paged.php, totuși nu este folosit pentru a afișa pagini unice de postare, ci mai degrabă pentru a afișa o listă de pagini în arhivele de postări.
Creați un șablon personalizat pentru utilizare în masă
Există mai multe opțiuni pentru crearea unui șablon cu plusurile și minusurile lor, aproape nesemnificative. Această opțiune, pe care o vom lua în considerare acum, este cea mai comună. Primul pas este să creați un fișier php sau să duplicați pagina standard.php. Apoi salvați-l sub un alt nume, de exemplu, templates_my.php . Apoi adăugați un comentariu în partea de sus a fișierului:
Următorul pas este să încărcați fișierul pe tema dvs., să mergeți la panoul de administrare din fila „Pagini-Adăugați nou” sau puteți deschide unul existent. În atributele paginii, selectați ce șablon va fi folosit pe această pagină.
Dacă dintr-o dată nu aveți panoul „Atribute pagină”, atunci trebuie doar să bifați caseta din setările ecranului din colțul din dreapta sus pentru a-l afișa.
Utilizarea în masă înseamnă că acest tip de șablon poate fi aplicat oricăror pagini ale site-ului. Spre deosebire de unul specializat, care a fost creat cu un anumit ID de pagină sau etichetă.
Sfat. Un șablon creat în acest fel poate fi localizat într-un subdosar al temei curente. Astfel, fără a ocupa spațiu suplimentar și creând un aspect compact.
Important. Nu utilizați prefixul de pagină ca nume de pagină șablon. Pentru că WordPress va interpreta fișierul ca un fișier specializat, care se aplică în mod unic doar unei pagini.
Șabloane de pagină personalizate
A doua metodă este destinată numai anumitor pagini fără excepție. Să luăm un exemplu vechi. Să presupunem că aveți o pagină numită „Portfolio”, în mod implicit eticheta acesteia este tradusă în cuvântul englezesc „portfolio”. Acest lucru poate fi văzut în setările „Pagini-Proprietăți”. Acum doar duplicați fișierul page.php și redenumiți-l în page-portfolio.php .
Cu un identificator, acesta este creat în același mod, doar ID-ul paginii este înlocuit pentru etichetă. Este în bara de adrese, secțiunea „Pagini-Editare” arată ca post=9 . În același mod, fișierul standard este duplicat și redenumit în pagina-9.php .
Important. Un șablon de același tip care a fost creat doar pentru o anumită pagină nu poate fi localizat în subdosarele temei. La fel ca în temele pentru copii.
Exemplu practic de creare a unui șablon de pagină
Acum, de exemplu, să creăm un șablon bazat pe prima opțiune și să schimbăm ciclul din acesta adăugând rezultatul categoriilor cu postări. Deschideți orice editor, adăugați codul de mai jos, salvați-l ca template_my.php , încărcați-l pe server.
- ">
Categoria-1
have_posts()): $the_query -> the_post(); ?>- ">
Categoria-2
have_posts()): $the_query -> the_post(); ?>- ">
Categoria-3
have_posts()): $the_query -> the_post(); ?>Acum trebuie să scrieți stiluri în fișierul style.css
My_main ( box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); margine: 20px automat; padding: 15px; background: #fff; width:1000px; ) .page_cat (marja: 0 9px 20px; padding: 15px; aliniere verticală: sus; lățime: 28%; afișare: bloc inline; ) .page_cat h2 (culoare: #676767; font: bold 18px arial; margin-bottom: 20px; ) .page_cat li a ( text-decoration : nici unul; culoare: #2879af; afișare: bloc; ) .page_cat li ( margin-bottom: 6px; umplutură: 3px 3px 3px 10px; afișare: bloc; ) .page_cat li a:hover ( text-decor: subliniat; ) . page_cat li:nth-child(2n) ( fundal: #f7f7f7; )
Rămâne de făcut un singur lucru: în panoul de administrare din fila „Pagini-Modificare”, specificați șablonul creat anterior „șablon exemplu” în atributele paginii.
Rezultat.
Etichete de pagină condiționate
În ultimul paragraf, luați în considerare câteva etichete condiționate. Sunt scrise în fișierul standard page.php.
Afișați elemente pe anumite pagini
/images/img.png"/> /images/img.jpg"/> /images/img.jpg"/> /images/img.jpg"/>
ieșire de informații