Astăzi, vom începe mini-seria cu privire la modul de inserare a posturilor prin capătul din față. Vom aborda o varietate de aspecte diferite în acest tutorial, începând cu validarea formularului și inserarea postărilor. Deci, să ne pregătim și să începem!
Scopul nostru după finalizarea acestei mini-serii ar trebui să permită utilizatorului să trimită mesaje prin intermediul front-end-ului, împreună cu editarea și trimiterea postului în coșul de gunoi; toate fără a fi în tabloul de bord WordPress. Aceste metode pot fi folosite fie într-o temă sau în plugin și pot fi foarte adaptabile pentru a obține observații foarte avansate și complexe.
Demo-ul și fișierele de descărcare sunt o temă dezbrăcată care a fost creată doar pentru scopurile acestui tutorial.
Deci, deschideți editorul dvs. preferat de text și să începem!
Începem prin crearea unui formular care să permită utilizatorului să introducă detaliile referitoare la crearea unui post. Pe măsură ce construim această temă într-o temă, să începem prin crearea unui nou șablon de pagină și să o numim șablon-insert-posts.php. Vom începe apoi să construim forma noastră și să inserăm câteva etichete și câmpuri de intrare pentru titlul postului și textarea pentru corp:
Ceea ce am creat tocmai este o formă foarte simplă, care are o intrare de text pentru ca utilizatorul să introducă titlul și o textarea pentru conținutul mesajului.
Acum, după ce am stabilit fundamentele noastre, va trebui să efectuăm o validare a formularului pentru a ne asigura că primim conținutul corect și că nu avem atacuri rău intenționate împotriva trimiterilor noastre.
Vom folosi două forme diferite de validare. Vom folosi jQuery Validation Plugin, împreună cu validarea tradițională a PHP. Să începem mai întâi cu partea de validare jQuery și să ne inițializăm scriptul de validare. Ne vom asigura că înregistrăm și enqueuează scenariile din cadrul nostru functions.php fişier. Împreună cu acest lucru, vom crea un fișier JavaScript gol în care ne vom ocupa de toate jQuery personalizate; nu uitați să înregistrați și să enquege acest fișier pentru inițializare. Ar trebui să arate ceva de genul:
/ / js / jquery.custom.js ', array (' jquery '),' 1.0 ', TRUE); wp_enqueue_script ('custom_js'); // validare wp_register_script ('validare', 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js', array ('jquery')); wp_enqueue_script ("validare");
Bine, am înregistrat și enqueued toate scripturile noastre necesare. Vom deschide acum fișierul personalizat jQuery și vom începe să inițializăm jQuery Validation Plugin; vom deschide fișierul JavaScript gol și vom scrie următoarea linie de cod pentru a crea validarea jQuery:
jQuery (document) .ready (funcția () jQuery ("# primaryPostForm").
Tot ce am făcut aici este obținerea formularului nostru și aplicarea acestuia valida
metodă pentru aceasta. Acum, când avem acest lucru, ne vom întoarce la noi șablon-insert-posts.php fișier și asigurați-vă că am pus necesar
clasa în câmpurile de intrare care sunt necesare.
Toată validarea jQuery este în vigoare, să trecem la Validarea PHP.
Validarea noastră ar trebui să ne asigure că vom introduce un titlu, iar dacă Validarea jQuery nu reușește, atunci va reveni la Validarea PHP. Facem acest lucru creând mai întâi o variabilă PHP pentru a stoca mesajul de eroare și apoi a crea câteva teste condiționale.
Încerim inițial dacă utilizatorul a trimis formularul și apoi vom testa dacă variabila mesajului de eroare PHP este necompletată. Trebuie să introduceți următorul cod care face acest lucru chiar mai sus :
Validarea noastră PHP este în vigoare, vom asigura că valoarea pe care o trimitem este aceeași valoare pe care a introdus-o utilizatorul și o facem prin introducerea următorului cod în postTitle
câmpul de introducere:
value =“"
Trebuie să facem același lucru și pentru zona noastră de text, dar funcționează puțin diferit; în loc de a stabili o valoare, vom introduce următorul cod în interiorul nostru postContent
textarea tag-uri:
În cele din urmă, trebuie să ne asigurăm că trimitem mesajul de eroare și facem acest lucru verificând dacă variabila mesajului nostru de eroare este goală. Dacă variabila noastră nu este goală, atunci ieșirea mesajului altceva nu scoate nimic. Următorul cod realizează acest lucru:
Acum, când am creat formularul nostru cu validare, putem trece la introducerea conținutului într-o postare. Sa trecem peste…
Acum vom trimite datele formularului într-un post real. Facem asta folosind funcția WordPress wp_insert_post
. Această funcție ne permite să inserăm posturi, așa că vom folosi acest lucru în avantajul nostru.
Începem mai întâi să creăm o variabilă care să țină toate elementele noastre diferite. Puteți defini o grămadă de elemente diferite și puteți citi în Codul WordPress. Introduceți următorul cod, chiar sub codul dvs. de validare a formularului:
$ postPOINT = 'post_type' => 'post', 'post_status' => 'în așteptare' $ post_information = array ('post_title' => wp_strip_all_tags) '); wp_insert_post ($ post_informație);
Codul pe care tocmai l-am inserat creează o matrice și atribuie valori diferitelor elemente. Pentru POST_TITLE
element, ne postăm postTitle
valoare, iar noi ne punem postul postContent
pentru noi POST_CONTENT
element.
De asemenea, setăm tipul postului nostru post
, deoarece vom trimite tipul de post implicit, dar veți putea să transmiteți în acest câmp orice tip de articol personalizat. În cele din urmă, setăm statutul postului în așteptare, astfel încât administratorul să poată confirma postarea înainte de a-l publica.
Apoi rulam funcția wp_insert_post
și treci matricea noastră cu toate elementele noastre și cu datele care le sunt atribuite.
Asta e! Acum suntem capabili să adăugăm posturi prin partea din față, dar nu am terminat încă. Avem câteva probleme de securitate pe care trebuie să le compensăm. Începem prin introducerea unui wp_nonce_field
. Dacă nu știți ce este un domeniu nonce, WordPress Codex explică perfect:
Câmpul nonce este folosit pentru a valida faptul că conținutul formularului a provenit de la locația de pe site-ul curent și nu în altă parte.
Acest lucru ne va ajuta împotriva oricărei probleme de securitate și pentru a preveni orice atac rău intenționat. Tot ce trebuie să faceți este să inserați următorul cod chiar înainte de butonul nostru de trimitere:
În același timp, vom modifica validarea formularului pentru a vă asigura că trimitem conținut numai după confirmarea câmpului nonce că trimitem conținutul de pe site-ul Web, ceea ce facem prin înlocuirea instrucțiunii condiționate de validare. Codul dvs. final cu validarea și trimiterea datelor trebuie să fie după cum urmează:
dacă is_set ($ _POST ['post_nonce_field']) && wp_verify_nonce ($ _POST ['post_nonce_field'], 'post_nonce' ] $ = PostTitleError = 'Introduceți un titlu.'; $ post_information = array ('post_title' => wp_strip_all_tags ($ _POST ['postTitle']) > $ _POST ['postContent'], 'post_type' => 'post', 'post_status' => 'în așteptare'); wp_insert_post ($ post_information)
În cele din urmă, doar pentru o suplimentare vom seta o redirecționare după ce utilizatorul a trimis informațiile astfel încât utilizatorii să nu poată apăsa de mai multe ori și să păstreze aceleași date în postările noastre. Vom face acest lucru la un nivel foarte fundamental.
La fel de wp_insert_post
returnează un ID, vom folosi acest lucru în avantajul nostru și vom returna ID-ul într-o variabilă pe care o vom folosi pentru a ne asigura că nu redirecționăm dacă nu a fost creată nicio postare.
Vom face acest lucru prin alocarea noastră wp_insert_post
funcția la o variabilă, după cum urmează:
$ post_id = wp_insert_post ($ post_informație);
Apoi vom rula o afirmație condiționată pentru a redirecționa numai dacă avem un ID post, apoi folosiți WordPress redirecţiona
funcționează și trece HOME_URL
la acest. Codul pe care îl veți introduce este după cum urmează:
dacă ($ post_id) wp_redirect (home_url ()); Ieșire;
Totul este gata…
Acestea sunt elementele de bază și fundamentele privind modul de inserare a posturilor prin capătul din față. Am acoperit foarte mult, creând mai întâi un formular, validând formularul și trimițând datele noastre într-un mesaj în așteptare!
În următoarea parte, vom săpați un pic mai adânc în editarea și ștergerea posturilor prin partea din față, ceea ce devine puțin mai dificil, dar poate fi foarte util!
Aș dori să vă spun un IMUNI vă mulțumesc că ați petrecut timpul pentru a citi tutorialul meu, sper că a ajutat. Vă rugăm să nu ezitați să lăsați comentarii și voi încerca să vă ajut și să le răspund, dacă nu puteți să mă contactați întotdeauna direct pe site-ul meu: www.VinnySingh.co sau Twitter @VinnySinghUK
Rămâneți tunat pentru partea 2!