Cum să implementați tranzițiile postului de stare pentru aplicațiile web personalizate

WordPress folosește mesaje și pagini pentru a furniza conținutul dinamic pentru aplicații. Introducerea tipurilor personalizate de posturi a sporit posibilitatea de a dezvolta aplicații complexe cu WordPress.

În general, posturile normale trec printr-un flux de lucru bine definit, înainte de a fi publicate pe site sau pe aplicație. În timpul acestui flux de lucru, diferite posturi sunt atribuite posturilor și manipulate intern de WordPress.

Posturile postale pot fi utilizate ca o tehnică puternică pentru gestionarea stării într-o aplicație web personalizată. În acest articol, vom discuta cum să folosim starea posturilor personalizate WordPress și tranzițiile pentru a construi aplicații care depășesc site-urile sau blogurile convenționale.

Aveți experiență în lucrul cu tranzițiile postului personalizat? Toți sunteți bineveniți să discutați despre experiențele voastre.


Înțelegerea stării postului WordPress

WordPress utilizează wp_posts tabel pentru a stoca atât postările, cât și paginile. Starea unui post definește o stare temporară până când devine publicată pe site. În general, statutul postului începe ca a proiect și comută între statutele existente până când ajunge la publicat stare. Să aruncăm o privire asupra listei existente de posturi WordPress și a rolurilor acestora.

  • publica - O postare este considerată a fi publicată și va fi pusă la dispoziția publicului pe site.
  • in asteptarea - O postare este în curs de examinare de la un rol de utilizator mai mare. Această stare va fi disponibilă în principal pe site-ul în care aveți mai mulți autori sau utilizatori care pot crea înregistrări pe wp_post masa.
  • proiect - O postare este salvată temporar, iar autorul postului poate efectua alte modificări înainte de publicare.
  • auto-proiect - O postare este salvată temporar fără conținut și autorul poate efectua alte modificări înainte de a fi publicat.
  • viitor - O postare este programată să fie publicată la o dată ulterioară. Aceasta este o tehnică frecvent utilizată pentru a menține coerența postării.
  • privat - O postare este vizibilă numai pentru utilizatorii conectați.
  • moşteni - Aceasta este considerată o revizuire a unui post. WordPress permite mai multe revizuiri ale aceluiași post.
  • Gunoi - O postare este considerată a fi ștearsă.

De obicei, fiecare post începe cu un proiect sau auto-proiect și continuă să progreseze până ajunge la starea finală dorită. În următoarea secțiune, vom examina tranzițiile postului de stare WordPress și utilizarea acestora.


Lucrul cu tranzițiile postului Post

Transmiterea statutului postului este procesul de comutare între starea unei stări. De obicei, post-tranzițiile existente și funcționalitatea lor sunt tratate intern de WordPress. Dar există multe modalități eficiente de a adăuga caracteristici cu post-tranziții. Ca rezultat, WordPress oferă acum cârlige pentru a lucra cu toate tranzițiile post status; prin urmare, putem adăuga în mod dinamic noi funcții în tranziția unei postări.

Să vedem cum funcționează.

Să presupunem că vrem să facem ceva când starea postului se schimbă proiect la viitor. Următorul cod vă arată cum să implementați o tranziție a postului post pentru cerința precedentă.

 funcția callback_function_name ($ new_status, $ old_status, $ post) // Cod aici add_action ('draft_to_future', 'callback_function_name', 10, 3);

WordPress oferă un cârlig de acțiune al formatului Vechi status _to_ nou statut pentru fiecare tranziție post. Putem folosi o funcție de apel invers pentru a oferi funcționalitate particularizată. Această funcție personalizată ia starea veche, noua stare și obiectul post modificat ca parametri.

În secțiunea anterioară, am discutat despre opt statute post predefinite. Aici avem nouă posturi de post pentru tranziții, inclusiv un statut numit nou. Înainte ca postul să fie salvat, acesta va fi considerat nou. De îndată ce postul se salvează în baza de date, tranziția va avea loc de la new_to_ status custom.

Acum, să vedem posturile de tranziție pentru publicarea unui post în condiții normale.

Ecranul precedent arată post-tranzițiile unui site web cu un singur autor. Practic, putem lucra cu tranziții post status între stările asociate cu săgeți. Într-un singur site autor, post-tranzițiile sunt mai simple în comparație cu site-urile cu mai mulți autori.

Deci, haideți să aruncăm o privire la procesul de site-ul autor mai multe.

Pe un site web cu mai mulți autori, procesul este ușor modificat deoarece toate posturile trebuie revizuite și aprobate de o persoană autorizată înainte de a fi publicate; prin urmare, site-urile cu mai mulți autori au un pas suplimentar în procesul post-tranziție.

Până în prezent, am analizat tranzițiile implicite pentru posturile postate pe un site WordPress. Acum, întrebarea este, cum vor fi aceste tranziții utile?

Există numeroase modalități de utilizare a tranzițiilor post-status în aplicații. Să ne uităm la o parte din funcționalitatea frecvent utilizată în tranzițiile post-status.

  • Proiect la In asteptarea - Anunță editorul să revadă postarea.
  • In asteptarea la Viitor - Anunță autorul postării.
  • In asteptarea la Viitor - Adăugați postarea la calendarul de postare de pe site.
  • Viitor la Publica - Notificați abonații prin e-mail.

Acestea sunt unele dintre cele mai de bază și funcționalități comune efectuate în timpul post-tranzițiilor. Până acum, am analizat procesul de tranziție a postului pentru statui predefinite.

Valoarea reală a tranzițiilor post-post vine cu utilizarea statutului de mesaje personalizate. Următoarea secțiune acoperă detaliile de lucru cu starea postărilor personalizate pentru aplicațiile web personalizate.


Introducere în starea postului personalizat

WordPress devine lent un cadru pentru dezvoltarea aplicațiilor web prin depășirea sistemului general de gestionare a conținutului. Postul personalizat al postului devine vital pentru dezvoltarea de aplicații complexe. WordPress ne permite să ne creăm propriile statusuri post și susține tranzițiile între aceste stări. Să aruncăm o privire la următorul cod pentru a crea un post post particularizat.

 funcția add_custom_post_status () register_post_status ('custom_status', $ args);  add_action ('init', 'add_custom_post_status');

Stările personalizate ale postărilor pot fi definite utilizând funcția register_post_status funcția, care ia un nume de stare post ca parametru obligatoriu. Această sintaxă este similară cu codul utilizat pentru crearea postului personalizat. De asemenea, putem trece argumente suplimentare bazate pe preferințele noastre. Puteți găsi o listă completă de argumente în Codul WordPress. După ce se utilizează codul de mai sus, noua listă de posturi personalizate va fi adăugată la lista existentă.

Din păcate, panoul de administrare WordPress nu are suportul încorporat pentru starea postului personalizat; prin urmare, trebuie să găsim modalități alternative de a adăuga posturi postate personalizate la panoul de administrare.

Explicarea procesului de integrare a statutului postului personalizat în panoul de administrare este în afara domeniului de aplicare al acestui articol, deci intenționez să folosesc un plugin existent pentru a vă arăta cum să lucrați cu starea personalizată.


Integrarea statutului postului personalizat în panoul de administrare

În principiu, trebuie să personalizăm postul de administrare postat metabox existent pentru a afișa statusurile personalizate ale postului în stare câmp jos. În acest stadiu, suportul WordPress pentru această caracteristică este foarte limitat și, prin urmare, este dificil să găsiți pluginuri de calitate pentru a lucra cu posturi personalizate post.

Putem folosi un plugin numit Editați fluxul pentru gestionarea statusurilor postărilor personalizate. Puteți obține o copie a acestui plugin de la http://wordpress.org/plugins/edit-flow/. După activare, navigați la Stare personalizată secțiune în cadrul Editați fluxul meniu și veți obține un ecran similar cu următorul.

Putem folosi acest formular pentru a crea noi stări de mesaje personalizate. Acest plugin utilizează în mod intern register_post_status funcția de a defini starea personalizată și o stochează în wp_terms masa. Toate gestionările de stare se fac intern în plugin.

În mod ideal, am dori să vedem aceste caracteristici disponibile în cadrul WordPress core. Odată creat, veți găsi lista de stări noi așa cum se arată în ecranul următor.

Acum statutele sunt gata și puteți merge la ecranul creării postului și puteți selecta starea necesară înainte de a salva postarea. Apoi puteți implementa tranzițiile de stare în post pentru a adăuga mai multe funcții sau pentru a gestiona funcțiile existente.


Utilizarea tranzițiilor de stare în aplicațiile Web personalizate

Trebuie să folosim tipuri personalizate de posturi în aplicații web personalizate. Stările personalizate pentru posturi joacă un rol esențial în gestionarea tipurilor personalizate de postări.

De obicei, tipurile de posturi existente au un înțeles foarte limitat în lucrul cu tipurile personalizate de posturi; prin urmare, trebuie să folosim tranzițiile de stare personalizate pentru a gestiona starea postărilor personalizate. Să analizăm scenariile practice pentru a înțelege nevoia de statut posturi personalizate.

Sistem de vânzare online pentru produse

Aceste zile cele mai multe produse sunt vândute online folosind căruțele de cumpărături. Există o mulțime de site-uri WordPress existente pentru vânzarea de produse. Într-un astfel de sistem, trebuie să avem un tip de post personalizat numit Produse pentru a stoca toate informațiile despre produse.

Acum, gândiți-vă cum putem potrivi posturile existente în produse. Stare de genul proiect, viitor, și in asteptarea nu au nici un sens în contextul produselor. Așadar, avem nevoie de statute personalizate pentru a satisface astfel de scenarii. Să ne gândim la posibilele stări pentru produse.

De obicei, putem folosi stări cum ar fi In stoc, Ordonat, Transportat, Livrat, și Întors pentru Produse. Să examinăm următorul ecran pentru posibilele tranziții de stare.

Produsul începe cu un statut de In stoc, și termină cu un statut de Livrat sau Întors. Fiecare tranziție de stare poate fi utilizată pentru a executa diferite sarcini. De exemplu, atunci când starea produsului se modifică de la In stoc la Ordonat, putem actualiza valorile stocului. Deci, acțiunea care trebuie utilizată pentru acest scenariu este În stoc _to_ ordonat. Putem face activități similare pe alte tranziții de status pentru a îmbunătăți procesul.

Sistemul de management al bibliotecii

Acesta este un alt scenariu în care stadiile personalizate devin foarte importante. Într-un sistem de bibliotecă, starea unei cărți se modifică în funcție de activitățile realizate de membrii bibliotecii. Într-un astfel de sistem, o carte poate avea stări cum ar fi Borrowed, reînnoită, Disponibil, și întârziat. Să luăm în considerare următorul ecran pentru posibilele tranziții de stare.

În acest scenariu, tranzițiile de stare au devenit mult mai complexe comparativ cu scenariul precedent. O carte își începe procesul de la Disponibil statutul și comută între alte stări până când se întoarce la Disponibil stare. Să luăm în considerare un scenariu pentru utilizarea tranzițiilor post-status în acest sistem.

În general, există o limită maximă pentru numărul de reînnoiri ale unei singure cărți. Deci, când se schimbă starea cărții reînnoită la Disponibil, putem verifica contul membru pentru a vedea dacă membrul a atins deja limita maximă și a bloca accesul membrilor la reînnoire.

Aici, am discutat două scenarii pentru nevoia de tranziții de stare personalizată. Aplicațiile reale sunt mult mai complexe și, prin urmare, veți găsi multe ocazii pentru nevoia de tranziții de stare personalizată.


Învelire

Postările postului de stare sunt o modalitate foarte puternică de a adăuga noi funcții sau de a gestiona fluxul de lucru în aplicații, dar există și unele dezavantaje cu această tehnică. Luați în considerare o situație în care trebuie să trimiteți un număr mare de notificări într-o tranziție unică a postului.

În astfel de cazuri, nu veți putea finaliza tranziția de stare până când toate notificările nu vor fi trimise, astfel încât va deveni o sarcină dificilă de a publica postări. În general, tranzițiile post-status nu ar trebui să fie utilizate pentru procese extinse care necesită o cantitate considerabilă de timp. Depinde de dvs. să alegeți cu înțelepciune pe baza cerințelor.

Acum am câteva întrebări pentru dvs. și sper că toți vă puteți împărtăși cunoștințele răspunzând la aceste întrebări:

  1. Doriți ca WordPress să accepte implicit starea personalizată? și de ce?
  2. Care sunt celelalte scenarii practice ale lumii reale pentru utilizarea tranzițiilor post-status?
  3. Care sunt tipurile de caracteristici pe care doriți să le furnizați cu tranziții post status?
  4. Cum ați planifica să implementați un proces extins cu tranziții post-status?

Așteptăm cu nerăbdare să auzim vești de la dumneavoastră.

Cod