În primele două părți ale acestei serii de tutorial, am analizat ce șabloane dinamice ale paginilor au fost și de ce au fost necesare. De asemenea, am analizat codul necesar pentru implementarea acestora.
În acest tutorial al treilea și ultimul din seria, voi crea două exemple de șabloane de pagină dinamice care funcționează pe deplin pe care le puteți utiliza în proiectele proprii. Acestea au fost alese special pentru a fi ușor de extins pentru a se potrivi propriilor dvs. nevoi și sunt destinate ca inspirație pentru orice alt tip de template-uri dinamice de pagină pe care vă puteți gândi.
Cele două șabloane dinamice ale paginilor pe care le vom examina în curând sunt:
Pe lângă punerea în aplicare a șabloanelor noastre de pagini, vă voi arăta, de asemenea, cum să adăugați poloneză suplimentară, prin CSS personalizat și JavaScript, pentru a face interacțiunea mult mai intuitivă pentru utilizatorii finali.
În plus, vom examina modul în care puteți utiliza șabloanele de pagini orice post tip. De la WordPress 4.7, puteți specifica tipul de post cu care este asociat un șablon de pagină. Vom vedea cum puteți modifica un șablon de pagină dinamic existent pentru a profita de această nouă funcție, astfel încât să funcționeze cu orice tip de postare.
Avem multe de acoperit în acest tutorial, așa că să începem!
Vom folosi din nou o temă de la WordPress Twenty Seventeen, la fel ca în partea a 2 a seriei tutorial, pentru a adăuga codul dinamic al șablonului de pagină. Să începem cu o temă fără copii.
Creați un folder tematic pentru copii numit twentyseventeen-copil
și adăugați următoarele fișiere:
Interior style.css
, adăuga:
/ * Denumirea temei: Twenty Seventeen Child Descriere: Douăzeci și șaptezeci de temă pentru copii Autor: David Gwyer Format: twentyseventeen Versiune: 0.1 Licență: GNU General Public License v2 sau mai recent URI de licență: http://www.gnu.org/licenses/gpl- 2.0.html Domeniul text: twenty-seventeen-child * /
Și înăuntru functions.php
, adăuga:
init ();
Adăugați tema copilului în directorul de teme WordPress așa cum am făcut-o înainte. Dacă nu sunteți sigur (ă) cum să faceți acest lucru, consultați înapoi partea 2 din această serie de tutori.
Acum avem o temă de lucru (necompletată) pregătită de noi pentru a adăuga codul dinamic al șablonului de pagină.
Prima noastră implementare reală a unui șablon dinamic al paginii este un simplu formular de contact. Vom adăuga următoarele câmpuri:
Acestea sunt câmpurile de introducere a textului, în afară de titlu, care este o etichetă standard de titlu HTML.
Înainte de a implementa șablonul de pagină real, trebuie să adăugăm controale personalizate editorului de pagini care să ne permită să modificăm ieșirea șablonului de pagină. Apoi, când creăm șablonul de pagină, acesta va fi redat în funcție de setările de control ale editorului de pagini.
În partea a doua a acestei serii de tutorial, am menționat că nu există nicio modalitate ușoară de a adăuga comenzi personalizate direct în caseta meta "Atribute pagină", în care se află meniul drop down al șablonului de pagină.
Aceasta înseamnă că pentru moment trebuie să adăugăm controalele dinamice ale șabloanelor de pagină din altă parte. Vă voi arăta cum să depășiți această limitare mai târziu, cu un pic de magie CSS și JavaScript. Dar, pentru moment, va trebui să ne descurcăm cu adăugarea controalelor noastre personalizate într-o casetă meta separată.
În DPT_Twenty_Seventeen_Child
clasa, înregistrați două cârlige de acțiune noi în init
și o nouă metodă numită page_template_meta_boxes
.
încărcare-post.php
șiîncărcare-post-new.php
cârligele de acțiune rulează ori de câte ori un post (de orice tip) este editat sau creat. Când se întâmplă acest lucru, înregistrăm un alt cârlig de acțiuneadd_meta_boxes
care va declansa crearea meta-box-ului nostru personalizat, care se face prin intermediuladd_page_template_meta_boxes
funcția de retur. Să implementăm această funcție acum.Redarea efectivă a controalelor meta-box va fi gestionată prin intermediul
display_form_page_template_meta_box
callback funcția, care a fost specificată mai sus ca unul dintre argumenteleadd_meta_box ()
.Adăugați controale aici ...
Deocamdată, am adăugat un text cu substituent pentru a putea vedea noua noastră meta-casetă în editorul de pagini.
Rețineți mai devreme că șablonul de pagină al formularului nostru va avea o rubrică și patru câmpuri de text. Există mai multe modalități prin care putem alege să customizăm formularul de ieșire, dar, în cazul nostru, să adăugăm casete de selectare pentru fiecare câmp care ne va permite să ne schimbăm vizibilitatea. Actualizați
display_form_page_template_meta_box ()
pentru a include următorul cod.ID, "pt_chk_form_heading", adevărat); $ nume = get_post_meta ($ object-> ID, 'pt_chk_form_name', true); $ subject = get_post_meta ($ object-> ID, 'pt_chk_form_subject', true); $ email = get_post_meta ($ obiect-> ID, 'pt_chk_form_email', true); $ phone = get_post_meta ($ object-> ID, 'pt_chk_form_phone', true); ?>/>
/>
/>
/>
/>
Includem un câmp nonce pentru securitate, care va fi verificat mai târziu, chiar înainte de a salva valorile formularului în baza de date.
Notă: Dacă, din orice motiv, valoarea nonce nu poate fi verificată, setările nu vor fi salvate.
Apoi, valorile curente ale formularului sunt preluate din baza de date înainte ca câmpurile formularului personalizat să fie afișate în interiorul căsuței meta.
În prezent, căsuțele noastre de validare nu vor fi salvate atunci când postarea este actualizată. Pentru a face setările formularului să persiste, trebuie să înregistrați un nou cârlig în
init ()
care declanșează în timpul unui processave_post
acțiune și apoi implementați apelul pentru a actualiza manual setările post meta. post_type) return $ post_id; $ heading = isset ($ _POST ['pt_chk_form_heading'])? $ _POST ['pt_chk_form_heading']: "; update_post_meta ($ post_id, 'pt_chk_form_heading', titlu $); $ name = isset ($ _POST ['pt_chk_form_name']) $ _POST ['pt_chk_form_name']; update_post_meta ($ post_id, 'pt_chk_form_name', $ name); $ subject = isset ($ _POST ['pt_chk_form_subject'])? $ _POST ['pt_chk_form_subject']: "; update_post_meta ($ post_id, 'pt_chk_form_subject', $ subiect); $ email = isset ($ _POST ['pt_chk_form_email']) $ _POST ['pt_chk_form_email']; update_post_meta ($ post_id, 'pt_chk_form_email', $ email); $ phone = isset ($ _POST ['pt_chk_form_phone'])? $ _POST ['pt_chk_form_phone']: "; update_post_meta ($ post_id, 'pt_chk_form_phone', $ phone);Odată ce valoarea formularului și a permisiunilor de utilizator au fost verificate, împreună cu o verificare pentru a ne asigura că suntem pe tipul corect de post, putem testa valorile formularului afișat și salvați în siguranță valorile în baza de date.
Casutele noastre de verificare sunt acum pe deplin funcționale, astfel încât să putem continua și să implementăm șablonul de pagină real! În interiorul directorului temă rădăcină copil, adăugați un nou dosar numit
page-șabloane
, și adăugați la el un nou fișier numitFormularul-page-template.php
.Adăugați următorul cod în fișierul nou pentru a crea un șablon de pagină gol.
Pentru a reduce complexitatea codului, formularul nostru de contact nu validează datele introduse de utilizatori și ne-am angajat verificările și validarea formularului obișnuit, deoarece vrem să ne concentrăm exclusiv pe realizarea dinamică a formularului fără cod străin.
În primul rând, trebuie să preluăm valorile căsuței din formularul dinamic de contact.
Apoi putem adăuga în formularul de cod. Acest lucru este foarte similar pentru fiecare câmp de formular. Să aruncăm o privire la
Nume
cod de câmp.
Testați valoarea căsuței de selectare din setările șablonului de pagină și extrageți câmpul formular numai dacă este bifată. În caz contrar, nu se emite nimic. Aceasta se repetă pentru fiecare câmp de formular.
După trimiterea formularului, trimitem un e-mail administratorului site-ului și afișăm un mesaj pe ecran. Cu toate acestea, avem ultimul cod al șablonului de pagină.
Mesajul trimis a fost trimis cu succes!";>>