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:

    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.

  • 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).

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 seta un șablon pentru orice pagină sau grup de pagini. Carte blanche aproape completă în acțiune.

  • Puteți crea un șablon când scrieți un plugin.

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

"; } ?>

În WordPress, puteți crea pagini (pagini) sau postări (postări). Când scrieți o intrare obișnuită pe blog, creați o intrare. Intrările apar automat pe pagina principală în ordine cronologică inversă.

Paginile, pe de altă parte, sunt concepute pentru conținut precum „Despre mine”, „Informații de contact” și altele asemenea. Paginile sunt în afara secvenței cronologice normale a intrărilor și sunt adesea folosite pentru informații nesensibile la timp - una care este întotdeauna necesară. Cu pagini, puteți organiza și gestiona orice cantitate de conținut.

De asemenea, puteți oferi exemple precum paginile de copyright, acordurile de licență, condițiile de utilizare, informațiile despre site. Apropo, este o regulă bună să aveți o pagină cu informații despre site sau companie și/sau o pagină cu detalii de contact. Iată unul dintre sfaturile de la Lorelle (în engleză).

În general, paginile sunt foarte asemănătoare cu postările - ambele au un titlu și conținut și pot folosi șabloane de prezentare pentru a menține site-ul un aspect coeziv. Cu toate acestea, paginile au câteva diferențe cheie față de postări.

Pagini pe scurt

Ce pagini sunt și ce pot:

  • Paginile sunt un container pentru conținut care este independent de timp.
  • Paginile pot folosi diverse șabloane, care pot include , mărci de șablon () și cod PHP.

Ce pagini NU sunt și ce NU POT:

  • Paginile nu sunt intrări. Nu parcurg pagina principală. Notă: Puteți include postări în pagini utilizând pluginul Postări în linie .
  • Paginile nu sunt elemente de meniu, chiar dacă în spațiul de navigare este afișată o listă de pagini. Pentru a crea un meniu de navigare cu drepturi depline, există un mecanism separat.
  • Paginile nu pot fi asociate cu categorii și etichete. Structura organizatorică se bazează doar pe ierarhie.
  • Paginile nu sunt fișiere. Ele sunt stocate în baza de date în același mod ca înregistrările.
  • Deși puteți adăuga cod PHP la șablonul de pagină, nu puteți adăuga cod la pagina în sine, care încă funcționează. Notă: Acest lucru poate fi realizat folosind un modul PHP, cum ar fi Exec-PHP sau RunPHP

Crearea paginii

Pentru a crea o pagină, conectați-vă la Wordpress cu suficiente privilegii pentru a crea articole. Selectați > > pentru a începe o pagină nouă.

Schimbați adresa URL sau paginile Slug (Slug).

Începând cu versiunea 2.5, modificarea adreselor URL ale paginilor a devenit mai puțin intuitivă. Dacă aveți Permalink-uri activate și ați selectat setarea Permalinks ziua si numele(Clic Setări iar în lista deschisă Permalink-uri), permalinkul va apărea automat sub titlul postării când începeți să introduceți textul în corpul postării (nu doar titlul).

Deși puteți alege dintre mai multe setări diferite de permalink sau niciuna, pentru a edita adresa URL a unei pagini, trebuie să faceți următoarele:

  1. Creați o pagină cu Scrie > Pagina.
  2. Publicați-l făcând clic publica.
  3. Mergi la Gestionare > Pagini.
  4. Clic Editați | × lângă pagină.
  5. Priviți permalink-ul de sub titlu și faceți clic Editați | × să-l schimbe.

Astfel, dacă nu aveți permalink-urile activate, trebuie să vă publicați paginile înainte de a seta adresa URL.

Afișarea paginilor de pe site

WordPress este capabil automat creați o listă de pagini de site, de exemplu într-o bară laterală, folosind ceva numit wp_list_pages() . Citiți în continuare pentru mai multe detalii, inclusiv cum să:

  • Sortați lista de pagini. Personalizarea completă a ordinii de ieșire este descrisă în secțiunea „Ordinea paginilor” din panoul administrativ Scriere > Pagina.
  • din pagina de ieșire sau ascunde
  • Controlați afișarea paginilor, adică dacă să afișați toate paginile sau unele subpagini.
  • Stabiliți cât de adânc ajunge lista în ierarhia paginilor.

Copyright 1996-2006

Este adesea necesar să stilați o pagină de blog WordPress într-un stil diferit față de designul principal al blogului. Acest lucru se face prin setarea acestei pagini șablon separat. Să vedem cum sunt implementate toate acestea.

Mai întâi trebuie să-ți creezi propriul tău șablon de pagină. Pentru a face acest lucru, puteți edita pur și simplu fișierul page.php, care este responsabil pentru afișarea paginilor permanente.

Creăm o copie a acestui fișier și îi denumim de exemplu page_extra.php (numele poate fi orice). După aceea, deschideți-l într-un editor de text și modificați conținutul la ceea ce avem nevoie. De exemplu, dacă trebuie să schimbați antetul, puteți crea un fișier separat header_extra.php (din nou, numele nu contează), iar în fișierul page_extra.php, în loc de get_header(); introduce include("header_extra.php");. În mod similar, putem schimba alte blocuri ale paginii.

Acum, la începutul fișierului page_extra.php scriem

1 2 3 4 5

Acesta va fi numele noului nostru șablon. Gata, salvați fișierul și plasați-l în folderul cu tema instalată! De asemenea, trimitem acolo toate fișierele nou create (header_extra.php).

Acum trebuie să aplicăm acest șablon pe pagina dorită. Acest lucru se poate face prin panoul de administrare a blogului. Pentru a face acest lucru, creăm o pagină sau mergem la panoul de administrare wordpress pentru a edita pagini și pentru a schimba șablonul paginii necesare în cel nou creat.



De asemenea, puteți scrie următorul cod în fișierul page.php:

Pentru versiunile de WordPress de la 2.8, toate cele de mai sus se pot face printr-o altă metodă. Pentru aceasta folosim functia:. Trebuie adăugat la etichetă. în fișierul header.php al temei tale.

Ca urmare, textul titlurilor celui de-al treilea nivel va deveni egal cu 18px și numai pe paginile statice, sau

1 2 3 #post-2 ( culoare : roșu ; )

Acest cod va schimba culoarea textului din postare cu id 2 în roșu.

Iată o listă completă de clase de corp care pot fi folosite pentru a le coafa:

  • Arhiva
  • căutare
  • paginat
  • atașament
  • Eroare 404
  • un singur postid-(id)
  • attachmentid - (id)
  • atașament-(tip mime)
  • autor
  • numele autorului)
  • categorie
  • Numele categoriei)
  • nume eticheta)
  • părinte de pagină
  • page-child parent-pageid- (id)
  • page-template page-template- (numele fișierului șablon)
  • rezultatele cautarii
  • căutare-fără-rezultate
  • conectat
  • paginat- (numărul paginii)
  • cu o singură pagină- (numărul paginii)
  • page-paged- (numărul paginii)
  • categorie-paginată- (numărul paginii)
  • tag-paged- (numărul paginii)
  • data-paged- (numărul paginii)
  • autor-paginat- (numărul paginii)
  • search-paged- (numărul paginii)
  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva