Poststatentransities voor aangepaste webtoepassingen implementeren

WordPress gebruikt berichten en pagina's om de dynamische inhoud voor applicaties te bieden. De introductie van Custom Post Types heeft de mogelijkheid vergroot om complexe applicaties te ontwikkelen met WordPress.

Over het algemeen gaan normale berichten door een goed gedefinieerde workflow, voordat ze op de website of in de applicatie worden gepubliceerd. Tijdens deze workflow worden verschillende statussen toegewezen aan berichten en intern verwerkt door WordPress.

Poststatussen kunnen worden gebruikt als een krachtige techniek om de status in een aangepaste webtoepassing te beheren. In dit artikel gaan we bespreken hoe u WordPress-eigen berichtstatussen en -overgangen kunt gebruiken om applicaties te bouwen die verder gaan dan de conventionele websites of blogs.

Heb je ervaring met het werken met aangepaste post-statusovergangen? Iedereen is welkom om uw ervaringen te bespreken.


WordPress Post Status begrijpen

WordPress gebruikt de wp_posts tabel om zowel berichten als pagina's op te slaan. De status van een post definieert een tijdelijke status totdat deze wordt gepubliceerd op de website. Over het algemeen begint de status van een bericht als een droogte en schakelt tussen bestaande statussen tot het tot de gepubliceerd -status. Laten we eens kijken naar de bestaande lijst met statuslijsten van WordPress en hun rollen.

  • publiceren - Een bericht wordt beschouwd als gepubliceerd en zal openbaar beschikbaar zijn op de website.
  • in afwachting - Een bericht wacht op beoordeling van een hogere gebruikersrol. Deze status zal voornamelijk beschikbaar zijn op de site waar u meerdere auteurs of gebruikers hebt die records kunnen aanmaken op de wp_post tafel.
  • droogte - Een bericht wordt tijdelijk opgeslagen en de auteur van het bericht kan verdere wijzigingen aanbrengen voordat het wordt gepubliceerd.
  • auto-ontwerp - Een bericht wordt tijdelijk zonder inhoud opgeslagen en de auteur kan verdere wijzigingen aanbrengen voordat het wordt gepubliceerd.
  • toekomst - Een post is gepland om te worden gepubliceerd op een toekomstige datum. Dit is een veel gebruikte techniek om de consistentie van het plaatsen te behouden.
  • privaat - Een bericht is alleen zichtbaar voor ingelogde gebruikers.
  • erven - Dit wordt beschouwd als een herziening van een bericht. WordPress staat meerdere herzieningen van dezelfde post toe.
  • uitschot - Een bericht wordt als verwijderd beschouwd.

Gewoonlijk begint elke post met een droogte of auto-ontwerp status en blijft doorgaan totdat het de gewenste eindtoestand bereikt. In de volgende sectie gaan we kijken naar WordPress-statusovergangen en hun gebruik.


Werken met overgangen van berichtstatus

Poststatusovergang is het proces waarbij wordt geschakeld tussen de ene status naar de andere status. Meestal worden bestaande postovergangen en hun respectieve functionaliteit intern verwerkt door WordPress. Maar er zijn veel effectieve manieren om functies toe te voegen aan post-overgangen. Als gevolg daarvan biedt WordPress nu haken voor het werken met alle poststatusovergangen; daarom kunnen we dynamisch nieuwe functies toevoegen aan de overgang van een bericht.

Laten we eens kijken hoe het werkt.

Stel dat we iets willen doen wanneer de post-status verandert droogte naar toekomst. De volgende code laat zien hoe u een poststatusovergang implementeert voor de voorgaande vereiste.

 functie callback_function_name ($ new_status, $ old_status, $ post) // Code hier add_action ('draft_to_future', 'callback_function_name', 10, 3);

WordPress biedt een actiehaak van het formaat Oude status _to_ nieuwe status voor elke post-overgang. We kunnen een callback-functie gebruiken om aangepaste functionaliteit te bieden. Deze aangepaste functie neemt de oude status, nieuwe status en het gewijzigde post-object als parameters.

In de vorige sectie hebben we ongeveer acht voorgedefinieerde poststatussen besproken. Hier hebben we negen poststatussen voor overgangen, inclusief een status genaamd nieuwe. Voordat het bericht wordt opgeslagen, wordt het als nieuw beschouwd. Zodra de post in de database is opgeslagen, zal de overgang plaatsvinden nieuwe_naar_ aangepaste status.

Laten we nu de postovergangen bekijken voor het publiceren van een bericht in normale omstandigheden.

Het vorige scherm toont de post-overgangen van een website met één auteur. Kortom, we kunnen werken met post-statusovergangen tussen de statussen die met pijlen zijn verbonden. In één auteurswebsite zijn postovergangen eenvoudiger in vergelijking met websites van meerdere auteurs.

Laten we dus eens kijken naar het proces van de website met meerdere auteurs.

In een website met meerdere auteurs is het proces enigszins gewijzigd, omdat alle berichten moeten worden beoordeeld en goedgekeurd door een geautoriseerd persoon voordat ze worden gepubliceerd; daarom hebben websites met meerdere auteurs een extra stap in het proces na de transitie.

Tot nu toe hebben we gekeken naar de standaard post-statusovergangen op een WordPress-website. Nu is de vraag: hoe zullen deze overgangen van pas komen??

Er zijn tal van manieren om post-statusovergangen in applicaties te gebruiken. Laten we eens kijken naar enkele veelgebruikte functies in post-statusovergangen.

  • Droogte naar In afwachting - Breng de editor op de hoogte om het bericht te bekijken.
  • In afwachting naar Toekomst - Breng de auteur op de hoogte.
  • In afwachting naar Toekomst - Voeg het bericht toe aan de postkalender op de site.
  • Toekomst naar Publiceren - Breng abonnees op de hoogte via e-mail.

Dit zijn enkele van de meest elementaire en algemene functionaliteiten die tijdens post-overgangen worden gedaan. Tot nu toe hebben we gekeken naar het overgangsproces van post-status naar vooraf gedefinieerde standbeelden.

De echte waarde van post-statusovergangen komt met het gebruik van aangepaste poststatussen. Het volgende gedeelte behandelt de details van het werken met aangepaste poststatussen voor aangepaste webtoepassingen.


Inleiding tot aangepaste berichtenstatus

WordPress wordt langzaam een ​​kader voor het ontwikkelen van webtoepassingen door verder te gaan dan het algemene contentbeheersysteem. Aangepaste berichtstatus wordt essentieel voor de ontwikkeling van complexe applicaties. WordPress stelt ons in staat om onze eigen poststatussen te maken en ondersteunt overgangen tussen deze statussen. Laten we eens kijken naar de volgende code voor het maken van een aangepaste berichtstatus.

 functie add_custom_post_status () register_post_status ('custom_status', $ args);  add_action ('init', 'add_custom_post_status');

Aangepaste berichtstatussen kunnen worden gedefinieerd met behulp van de register_post_status functie, die een post-statusnaam als de verplichte parameter opneemt. Deze syntaxis is vergelijkbaar met de code die wordt gebruikt voor het maken van aangepaste postsoorten. We kunnen ook aanvullende argumenten doorgeven op basis van onze voorkeuren. U kunt een complete lijst met argumenten vinden in de WordPress Codex. Nadat de bovenstaande code is gebruikt, wordt de nieuwe aangepaste berichtenstatus toegevoegd aan de bestaande lijst.

Helaas heeft het admin panel van WordPress niet de ingebouwde ondersteuning voor aangepaste poststatussen; Daarom moeten we alternatieve manieren vinden om aangepaste poststatussen toe te voegen aan het beheerdersdashboard.

Het uitleggen van het proces van het integreren van de status van aangepaste berichten in het admin-paneel valt buiten het bestek van dit artikel, dus ik ga een bestaande plug-in gebruiken om u te laten zien hoe u met aangepaste statussen kunt werken.


Integratie van aangepaste berichtenstatus in het beheerdersdashboard

Kortom, we moeten de bestaande metabox voor het beheren van het beheerderspost aanpassen om poststatussen op maat te tonen in de staat drop-down veld. In dit stadium is WordPress-ondersteuning voor deze functie zeer beperkt en daarom is het moeilijk om kwaliteits-plug-ins te vinden voor het werken met aangepaste poststatussen.

We kunnen een plugin gebruiken genaamd Bewerk Flow voor het beheren van aangepaste berichtstatussen. U kunt een kopie van deze plug-in van http://wordpress.org/plugins/edit-flow/ pakken. Eenmaal geactiveerd, navigeert u naar de Aangepaste statussen sectie onder de Bewerk Flow menu en u krijgt een scherm dat lijkt op het volgende.

We kunnen dit formulier gebruiken om nieuwe aangepaste berichtstatussen te maken. Deze plug-in gebruikt intern de register_post_status functie om de aangepaste status te definiëren en op te slaan in de wp_terms tafel. Al het statusbeheer wordt intern uitgevoerd door de plug-in.

Idealiter willen we deze functies beschikbaar in WordPress core. Eenmaal aangemaakt, vindt u de lijst met nieuwe statussen zoals getoond in het volgende scherm.

Nu zijn de statussen gereed en kun je naar het venster voor het maken van berichten gaan en de benodigde status selecteren voordat je het bericht opslaat. Vervolgens kunt u statusovergangen op het bericht implementeren om meer functies toe te voegen of bestaande functies te beheren.


Statusovergangen gebruiken in aangepaste webtoepassingen

We moeten gebruik maken van aangepaste berichttypen in aangepaste webapplicaties. Aangepaste berichtstatussen spelen een cruciale rol bij het beheren van aangepaste berichttypen.

Meestal hebben bestaande berichttypen een zeer beperkte betekenis bij het werken met aangepaste berichttypen; Daarom moeten we aangepaste statusovergangen gebruiken om de status van aangepaste berichten te beheren. Laten we praktische scenario's bekijken om inzicht te krijgen in de noodzaak van aangepaste poststatussen.

Online verkoopsysteem voor producten

Tegenwoordig worden de meeste producten online verkocht via winkelwagentjes. Er zijn tal van bestaande WordPress-sites voor de verkoop van producten. In een dergelijk systeem moeten we een aangepast berichttype hebben met de naam Producten om alle informatie over producten op te slaan.

Bedenk nu hoe we de bestaande poststatussen kunnen koppelen aan producten. Statussen zoals droogte, toekomst, en in afwachting hebben geen betekenis in de context van producten. Dus we hebben aangepaste statussen nodig om aan dergelijke scenario's tegemoet te komen. Laten we eens nadenken over de mogelijke statussen voor producten.

Meestal kunnen we statussen zoals gebruiken Op voorraad, bestelde, verzonden, Geleverd, en teruggekeerd voor producten. Laten we naar het volgende scherm kijken voor mogelijke statusovergangen.

Product begint met een status van Op voorraad, en eindigt met een status van Geleverd of teruggekeerd. Elke statusovergang kan worden gebruikt om verschillende taken uit te voeren. Bijvoorbeeld wanneer de productstatus verandert van Op voorraad naar bestelde, we kunnen de voorraadwaarden bijwerken. Dus de actie die voor dit scenario moet worden gebruikt, is In voorraad _to_ besteld. We kunnen soortgelijke activiteiten uitvoeren op andere statusovergangen om het proces te verbeteren.

Bibliotheek Management Systeem

Dit is een ander scenario waarbij aangepaste statussen erg belangrijk worden. In een bibliotheeksysteem verandert de status van een boek aan de hand van de activiteiten van bibliotheekleden. In een dergelijk systeem kan een boek statussen hebben zoals geleende, Vernieuwd, Beschikbaar, en Achterstallig. Laten we het volgende scherm bekijken voor mogelijke statusovergangen.

In dit scenario zijn statusovergangen veel complexer geworden in vergelijking met het vorige scenario. Een boek begint zijn proces vanaf de Beschikbaar status en schakelt tussen andere statussen totdat deze terugkeert naar de Beschikbaar -status. Laten we een scenario overwegen voor het gebruiken van post-statusovergangen in dit systeem.

Over het algemeen geldt er een maximumlimiet voor het aantal verlengingen van een enkel boek. Dus wanneer de boekstatus verandert van Vernieuwd naar Beschikbaar, we kunnen het ledenaccount controleren om te zien of het lid de maximumlimiet al heeft bereikt en het lid blokkeren om verder te verlengen.

Hier hebben we twee scenario's besproken voor de noodzaak van aangepaste statusovergangen. Echte toepassingen zijn veel complexer en daarom zult u veel gelegenheden vinden voor de noodzaak van aangepaste statusovergangen.


Afronden

Poststatusovergangen zijn een zeer krachtige manier om nieuwe functies toe te voegen of de werkstroom in applicaties te beheren, maar er zijn enkele nadelen met deze techniek. Overweeg een situatie waarbij u een groot aantal meldingen moet verzenden in een enkele berichtstatusovergang.

In dergelijke gevallen kunt u de statusovergang niet voltooien totdat alle meldingen zijn verzonden, dus het wordt een moeilijke taak om berichten te publiceren. Over het algemeen mogen post-statusovergangen niet worden gebruikt voor uitgebreide processen die veel tijd in beslag nemen. Het is aan jou om wijs te kiezen op basis van de vereisten.

Nu heb ik enkele vragen voor je, en ik hoop dat jullie allemaal je kennis kunnen delen door deze vragen te beantwoorden:

  1. Wilt u dat WordPress standaard aangepaste statussen ondersteunt? en waarom?
  2. Wat zijn de andere praktijkscenario's in de echte wereld voor het gebruiken van post-statusovergangen?
  3. Wat zijn de soorten functies die u wilt voorzien van post-statusovergangen?
  4. Hoe zou u een uitgebreid proces met post-statusovergangen willen implementeren??

Ik kijk ernaar uit iets van je te vernemen.