Detașarea prin Front End Editare și ștergere

Astăzi, vom continua cu mini-seria noastră să inserăm posturi prin capătul din față, dar în această parte vom examina exclusiv cum să Editați | × și șterge posturi prin partea din față. Vom discuta cum să afișăm toate postările, să le editați și să le ștergem. Deci, să ne pregătim și să începem!


Introducere

Acum suntem în parte două din mini-seria noastră și, dacă nu ați citit prima parte, atunci vă sfătuiesc să faceți acest lucru pentru că vom lua din locul unde am rămas. 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 posturilor în coșul de gunoi; toate fără a fi în tabloul de bord WordPress. Aceste metode pot fi utilizate atât în ​​tematică, cât și î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!


Pasul 1 Afișarea mesajelor noastre

Vom începe prin afișarea mai eficientă a tuturor postărilor noastre, acest lucru ne va oferi o mai bună gestionare a postărilor noastre și ne va permite să efectuăm acțiuni în fiecare post. Pe măsură ce folosim o temă pentru a dezvolta acest lucru, vom crea un șablon de pagină numit șablon-view-posts.php. De asemenea, vom crea o nouă pagină prin Tabloul de bord WordPress Pagini -> Adăugați noi -> Atribute pagină așa cum ați atribui șablonul acestei pagini.

Acum avem Șablonul de pagină și pagina noastră create în tema noastră WordPress, putem începe să ieșim din toate postările noastre. Vom crea o tabelă foarte simplă pentru a obține toate informațiile necesare. Începeți prin crearea unui tabel cu câteva titluri, după cum urmează:

 
Titlul postului Post Excerpt Post Stare acţiuni

Acum, când avem masa noastră, putem începe să completați rândurile noastre de masă cu informații despre postările noastre. Vom începe mai întâi să realizăm o buclă WordPress personalizată, pentru a ne asigura că primim toate postările și toate posturile postate, pentru că vrem să vedem ce posturi sunt în așteptare, schițe, publicate sau chiar trimise în coșul de gunoi. Facem acest lucru prin introducerea următorului cod de cod:

  'post', 'posts_per_page' => '-1', 'post_status' => array ('publicați', 'în așteptare', 'draft', 'private', 'trash'))); ?>

Acesta este obiectul interogării noastre cu toți parametrii personalizați pe care i-am setat. Puteți citi despre toți parametrii diferiți pe care îi putem stabili de la Codul WordPress. Apoi vom rula bucla noastră WordPress imediat după titlurile tabelului nostru, după cum urmează:

 have_posts ()): în timp ce ($ query-> have_posts ()): $ query-> the_post (); ?>       

Sclipitor! Avem setul nostru de masă și setul nostru de buclă WordPress. Acum trebuie doar să introducem informațiile noastre care sunt legate de titlurile noastre de tabel. Înlocuiți celulele tabelului gol cu ​​următorul cod:

     Editați Ștergeți 

Codul pe care tocmai l-am introdus mai intai incepe cu trimiterea titlului nostru de post, iar urmatorul element este trimiterea unui extras din postul nostru. Apoi, obținem starea curentă a postului și transmitem ID-ul postului la această funcție și, în sfârșit, introducem două linkuri Editați | × și Șterge, le vom folosi mai târziu ca acțiuni ale noastre.


Pasul 2 Editarea postărilor noastre

Brilliant, facem progrese bune. Am stabilit tema noastră pentru a vedea toate postările noastre prin intermediul capătului din față. Apoi, vom edita postul. Începem acest lucru prin crearea unui alt șablon de pagină numit șablon-edit-posts.php. De asemenea, vom crea o nouă pagină prin Tabloul de bord WordPress Pagini -> Adăugați noi -> Atribute pagină și să atribuiți șablonul acestei pagini.

Înainte de a începe editarea acestui șablon, hai să ne întoarcem la noi șablon-view-posts.php și asigurați-vă că transmitem ID-ul Postului la adresa URL unde vom prelua codul de identificare din pagina noastră de editare. Facem acest lucru folosind funcția WordPress: add_query_arg. Vom introduce următorul cod chiar înainte de linkul Editare:

 

Codul pe care tocmai l-am inserat, stabilește mai întâi numele parametrului, iar după aceea se obține codul postului și apoi primim ID-ul șablonului de editare a paginii noastre și adăugăm argumentul nostru de adresă personalizată. Vom folosi aceasta pentru a prelua informațiile din șablonul Edit.

În cele din urmă, vom scoate acest lucru în linkul nostru de editare, făcând legătura noastră de editare după cum urmează:

 „> Editare

Acum, când l-am setat pentru momentul în care utilizatorul face clic pe Edit, merge la Edit Template cu ID-ul Postului. Ne vom întoarce la noi șablon-edit-posts.php fișier și începeți să introduceți codul nostru.

Vom copia peste noi Formă de la noi șablon-insert-posts.php și inserați-o în Modul de editare. Copiem următorul cod în șablonul de editare și eliminăm toate valorile din intrările și textarea noastre, făcând formularul nostru după cum urmează:

 

Acum, că avem setat formularul Pagină de editare, va trebui să folosim buclă WordPress pentru a trece prin toate postările noastre și pentru a găsi doar postările noastre care corespund codului postului trecut pe adresa URL. Vom face acest lucru executând bucla WordPress din partea de sus a fișierului nostru:

  'post', 'posts_per_page' => '-1')); ?> have_posts ()): în timp ce ($ query-> have_posts ()): $ query-> the_post (); ?>   

Pentru buclă WordPress pentru a ne asigura că preluăm doar informațiile despre postul respectiv, vom introduce următorul cod care ne asigură că primim ID-ul corect, în bucla noastră:

 dacă isset ($ _GET ['post'])) dacă ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; 

Ceea ce tocmai am inserat este să obțineți parametrul URL și să îl testați în funcție de ID-ul postului, iar când a găsit un meci, vom atribui ID-ul respectiv current_post variabil. În urma acestui lucru vom introduce un cod pentru a obține informațiile noastre cu privire la postarea noastră, introduceți următorul cod chiar sub nostru current_post misiune:

 $ titlu = get_the_title (); $ conținut = get_the_content ();

Codul nostru final ar trebui să arate astfel:

 dacă isset ($ _GET ['post'])) dacă ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; $ titlu = get_the_title (); $ conținut = get_the_content (); 

Acest lucru este minunat, facem progrese bune. Acum, că avem toate informațiile noastre, trebuie doar să le inserăm în valorile formei noastre, acest lucru este simplu, deoarece vom atribui valori pentru ambele câmpuri. În același timp, vom actualiza numele butonului nostru Actualizați postarea. Următorul cod este formularul actualizat cu formularul cu titlul și conținutul postării de editare:

 

După cum puteți vedea din cod, am atribuit valoarea de intrare Titlul postului pentru a scoate variabila titlului, iar în interiorul textarea noastră am expus variabila noastră de conținut, dar după cum probabil ați observat că atunci când faceți clic pe Actualizare nu se întâmplă nimic, acest lucru este pentru că nu am tratat încă acest lucru și vom face acest lucru acum.

Va trebui să ne întoarcem la noi șablon-insert-posts.php fișier și vom copia validarea formularului PHP în Modul de editare. Acum că am copiat validarea formularului, vom face unele modificări și vom introduce un anumit cod. Trebuie să-l regăsim current_post variabilă în validarea formularului nostru, și facem acest lucru prin stabilirea unei variabile globale și inserăm aceasta deasupra validării noastre:

 global $ current_post;

Apoi, vom face o modificare la adresa noastră post_information matrice. Pe măsură ce actualizăm postarea noastră, trebuie să ne asigurăm că va actualiza postarea corectă și nu toate postările, facem acest lucru prin introducerea unui parametru de identitate în post_information matrice. Efectuarea matricei noastre după cum urmează:

 $ postPOINT = 'post_type' => 'post' => post_information = array ('ID' => $ current_post, 'post_title' => wp_strip_all_tags ($ _POST ['postTitle' , 'post_status' => 'în așteptare');

În cele din urmă, vom face o modificare finală care ne va asigura că actualizăm postarea și nu inserăm un post nou. Facem acest lucru prin schimbarea pur și simplu a funcției pe care o folosim, în loc să o folosim wp_insert_post, vom folosi wp_update_post. Efectuați codul nostru final după cum urmează:

 $ post_id = wp_update_post ($ post_informație);

Și asta e pentru editarea mesajelor prin intermediul frontului. În cele din urmă, pentru această parte a mini-serie vom merge pe cum să ștergeți posturile.


Pasul 3 Ștergerea mesajelor noastre

Acum există multe moduri diferite de ștergere a postărilor și au existat multe discuții diferite în cea mai bună metodă despre cum să se realizeze acest lucru, de cîteva persoane aceasta este probabil o metodă incorectă, dar simt că funcționează perfect pentru această situație actuală. Vom folosi funcția get_delete_post_link.

Vom transmite această funcție către Link-ul de ștergere, împreună cu transmiterea ID-ului postului, după cum urmează:

 „> / Delete

Și este atât de simplu să ștergeți mesajele prin capătul din față. Vom extinde puțin acest lucru pentru a ne asigura că nu vom avea erori și nu vom mai da o notificare de la utilizatori că ștergem o postare. Facem acest lucru prin introducerea unei simple funcții de confirmare a onclick-ului nostru, după cum urmează:

 ?') "href ="„> Ștergeți

În cele din urmă, vom înfășura o condiție în jurul linkului nostru de ștergere, pentru a ne asigura că putem șterge numai o postare dacă starea curentă a postării nu este deja în coșul de gunoi. Facem acest lucru după cum urmează:

  ?„) "Href ="„> Ștergeți 

Si asta e! Puteți trimite postări în Coșul de gunoi. Doar în cazul în care ați fost curios cu privire la metoda alternativă de ștergere a postărilor, o voi explica foarte scurt.

Metoda este foarte simplă de a edita postările, trecând ID-ul Postului la adresa URL împreună cu adăugarea unui parametru șterge și verificând dacă valoarea acestui parametru este adevărată și dacă este adevărată atunci treceți wp_trash_post funcția la link. Acest lucru este foarte simplu și foarte eficient, dar pentru situația noastră actuală get_delete_post_link funcționează perfect bine.


Concluzie

Asta este partea a 2-a terminată! Acum suntem capabili să inserăm postări, să editez și să ștergem Mesajele prin capătul din față. Am parcurs o mulțime de conținut până acum, iar în următoarea parte vom săpați un pic mai departe.

În următoarea parte, vom analiza câmpurile personalizate și multe altele.

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âi acordat pentru Partea 3!

Cod