Implementieren von Post-Status-Übergängen für benutzerdefinierte Webanwendungen

WordPress verwendet Posts und Seiten, um den dynamischen Inhalt für Anwendungen bereitzustellen. Die Einführung von Custom Post Types hat die Möglichkeit erhöht, komplexe Anwendungen mit WordPress zu entwickeln.

Normalerweise durchlaufen normale Posts einen genau definierten Workflow, bevor sie auf der Website oder in der Anwendung veröffentlicht werden. Während dieses Arbeitsablaufs werden Postings verschiedene Status zugewiesen und intern von WordPress verarbeitet.

Post-Status können als leistungsfähige Technik zum Verwalten des Status in einer benutzerdefinierten Webanwendung verwendet werden. In diesem Artikel werden wir diskutieren, wie Sie benutzerdefinierte Poststatus und Übergänge von WordPress verwenden können, um Anwendungen zu erstellen, die über herkömmliche Websites oder Blogs hinausgehen.

Haben Sie Erfahrung mit benutzerdefinierten Post-Status-Übergängen? Sie alle sind herzlich eingeladen, Ihre Erfahrungen zu besprechen.


Grundlegendes zum PostPress-Status

WordPress verwendet die wp_posts Tabelle, um sowohl Beiträge als auch Seiten zu speichern. Der Status eines Beitrags definiert einen temporären Status, bis er auf der Website veröffentlicht wird. Im Allgemeinen beginnt der Status eines Beitrags als Entwurf und wechselt zwischen vorhandenen Zuständen bis zum veröffentlicht Status. Werfen wir einen Blick auf die vorhandene WordPress-Post-Statusliste und ihre Rollen.

  • veröffentlichen - Ein Post gilt als veröffentlicht und ist auf der Website öffentlich verfügbar.
  • steht aus - Ein Beitrag steht aus einer höheren Benutzerrolle aus. Dieser Status ist hauptsächlich auf der Website verfügbar, auf der Sie über mehrere Autoren oder Benutzer verfügen, die Datensätze auf dem Computer erstellen können wp_post Tabelle.
  • Entwurf - Ein Beitrag wird vorübergehend gespeichert, und der Verfasser kann vor der Veröffentlichung weitere Änderungen vornehmen.
  • Auto-Entwurf - Ein Beitrag wird vorübergehend ohne Inhalt gespeichert und der Autor kann vor der Veröffentlichung weitere Änderungen vornehmen.
  • Zukunft - Es ist geplant, dass ein Post zu einem späteren Zeitpunkt veröffentlicht wird. Dies ist eine häufig verwendete Technik, um die Konsistenz der Veröffentlichung aufrechtzuerhalten.
  • Privatgelände - Ein Beitrag ist nur für angemeldete Benutzer sichtbar.
  • erben - Dies wird als Überarbeitung eines Beitrags betrachtet. WordPress erlaubt mehrere Revisionen desselben Beitrags.
  • Müll - Ein Beitrag gilt als gelöscht.

Normalerweise beginnt jeder Beitrag mit einem Entwurf oder Auto-Entwurf Status und fährt fort, bis der gewünschte Endzustand erreicht ist. Im nächsten Abschnitt werden wir uns die Übergänge und die Verwendung von PostPress-Post-Status ansehen.


Arbeiten mit Post-Status-Übergängen

Nach dem Statuswechsel ist der Vorgang des Wechsels zwischen einem Status in einen anderen Status. Üblicherweise werden vorhandene Postübergänge und ihre jeweilige Funktionalität intern von WordPress behandelt. Es gibt jedoch viele effektive Möglichkeiten, Features mit Nachübergängen hinzuzufügen. Infolgedessen bietet WordPress jetzt Haken für die Arbeit mit allen Post-Status-Übergängen. Daher können wir beim Übergang eines Beitrags neue Features dynamisch hinzufügen.

Mal sehen, wie es tatsächlich funktioniert.

Angenommen, wir möchten etwas tun, wenn sich der Post-Status ändert Entwurf zu Zukunft. Der folgende Code zeigt, wie Sie einen Post-Status-Übergang für die vorhergehende Anforderung implementieren.

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

WordPress bietet einen Action-Hook des Formats alter-status _zu_ neuer-status für jeden postübergang. Wir können eine Rückruffunktion verwenden, um benutzerdefinierte Funktionen bereitzustellen. Diese benutzerdefinierte Funktion übernimmt den alten Status, den neuen Status und das geänderte Post-Objekt als Parameter.

Im vorherigen Abschnitt wurden acht vordefinierte Post-Status besprochen. Hier haben wir neun Post-Status für Übergänge, einschließlich eines Status, der aufgerufen wird Neu. Bevor der Beitrag gespeichert wird, wird er als neu betrachtet. Sobald der Beitrag in der Datenbank gespeichert ist, erfolgt der Übergang von new_to_ benutzerdefinierter Status.

Nun sehen wir die Postübergänge für die Veröffentlichung eines Posts unter normalen Umständen.

Der vorherige Bildschirm zeigt die Postübergänge einer Website mit einem einzelnen Autor. Grundsätzlich können wir mit Post-Status-Übergängen zwischen den mit Pfeilen verbundenen Status arbeiten. In einer Website mit nur einem Autor sind Postübergänge im Vergleich zu Websites mit mehreren Autoren einfacher.

Schauen wir uns den Prozess der Website mit mehreren Autoren an.

In einer Website mit mehreren Autoren wird der Prozess geringfügig geändert, da alle Posts vor der Veröffentlichung von einer autorisierten Person geprüft und genehmigt werden müssen. Daher haben Websites mit mehreren Autoren einen zusätzlichen Schritt im Post-Transition-Prozess.

Bisher haben wir uns die Standard-Post-Status-Übergänge in einer WordPress-Website angesehen. Nun stellt sich die Frage, wie diese Übergänge nützlich sein werden?

Es gibt viele Möglichkeiten, Post-Status-Übergänge in Anwendungen zu verwenden. Schauen wir uns einige der häufig verwendeten Funktionen in Post-Status-Übergängen an.

  • Entwurf zu steht aus - Benachrichtigen Sie den Redakteur, um den Beitrag zu überprüfen.
  • steht aus zu Zukunft - Benachrichtigen Sie den Postautor.
  • steht aus zu Zukunft - Fügen Sie den Beitrag zum Nachkalender auf der Website hinzu.
  • Zukunft zu Veröffentlichen - Abonnenten per E-Mail benachrichtigen.

Dies sind einige der grundlegendsten und gebräuchlichsten Funktionen, die während Nachübergängen ausgeführt werden. Bisher haben wir uns den Post-Status-Übergangsprozess für vordefinierte Statuen angesehen.

Der wahre Wert von Post-Status-Übergängen liegt in der Verwendung von benutzerdefinierten Post-Status. Im nächsten Abschnitt werden die Details zum Arbeiten mit benutzerdefinierten Poststatus für benutzerdefinierte Webanwendungen beschrieben.


Einführung in den Status der benutzerdefinierten Post

WordPress entwickelt sich langsam zu einem Rahmen für die Entwicklung von Webanwendungen, indem es über das allgemeine Content-Management-System hinausgeht. Der benutzerdefinierte Post-Status wird für die Entwicklung komplexer Anwendungen unabdingbar. WordPress ermöglicht es uns, eigene Post-Status zu erstellen und Übergänge zwischen diesen Status zu unterstützen. Sehen wir uns den folgenden Code zum Erstellen eines benutzerdefinierten Post-Status an.

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

Benutzerdefinierte Post-Status können mit festgelegt werden register_post_status Funktion, die einen Post-Status-Namen als obligatorischen Parameter verwendet. Diese Syntax ähnelt dem Code, der für die Erstellung benutzerdefinierter Post-Typen verwendet wird. Wir können auch zusätzliche Argumente übergeben, die auf unseren Präferenzen basieren. Eine vollständige Liste der Argumente finden Sie im WordPress-Codex. Sobald der obige Code verwendet wird, wird der neue benutzerdefinierte Post-Status der vorhandenen Liste hinzugefügt.

Leider verfügt das Admin-Bedienfeld von WordPress nicht über die integrierte Unterstützung für benutzerdefinierte Post-Status. Daher müssen wir alternative Wege finden, um benutzerdefinierte AdminStatus hinzuzufügen.

Die Integration von benutzerdefinierten Post-Status in das Admin-Panel zu erläutern, würde den Rahmen dieses Artikels sprengen. Ich werde daher ein vorhandenes Plug-In verwenden, um Ihnen zu zeigen, wie Sie mit benutzerdefinierten Status arbeiten.


Integrierten Post-Status in das Admin-Panel integrieren

Grundsätzlich müssen wir die vorhandene Admin Post Sub-Metabox anpassen, um benutzerdefinierte Post-Status in der anzuzeigen Status Dropdown-Feld. Derzeit ist die WordPress-Unterstützung für diese Funktion sehr begrenzt und daher ist es schwierig, Qualitäts-Plugins für das Arbeiten mit benutzerdefinierten Post-Status zu finden.

Wir können ein Plugin namens verwenden Flow bearbeiten zur Verwaltung benutzerdefinierter Post-Status. Sie können eine Kopie dieses Plugins von http://wordpress.org/plugins/edit-flow/ herunterladen. Nach der Aktivierung navigieren Sie zu Benutzerdefinierte Status Abschnitt unter der Flow bearbeiten Menü und Sie erhalten einen Bildschirm ähnlich dem folgenden.

Wir können dieses Formular verwenden, um neue benutzerdefinierte Poststatus zu erstellen. Dieses Plugin verwendet intern die register_post_status Funktion, um den benutzerdefinierten Status zu definieren und speichert ihn im wp_terms Tabelle. Die Statusverwaltung erfolgt intern durch das Plugin.

Idealerweise möchten wir, dass diese Funktionen in WordPress Core verfügbar sind. Nach dem Erstellen finden Sie die Liste der neuen Status (siehe folgende Abbildung).

Nun sind die Status fertig und Sie können zum Bildschirm für die Post-Erstellung gehen und den erforderlichen Status auswählen, bevor Sie den Post speichern. Anschließend können Sie Statusübergänge im Post implementieren, um weitere Funktionen hinzuzufügen oder vorhandene Funktionen zu verwalten.


Verwenden von Statusübergängen in benutzerdefinierten Webanwendungen

In benutzerdefinierten Webanwendungen müssen benutzerdefinierte Posttypen verwendet werden. Benutzerdefinierte Poststatus spielen eine wichtige Rolle bei der Verwaltung benutzerdefinierter Posttypen.

Normalerweise haben vorhandene Posttypen beim Arbeiten mit benutzerdefinierten Posttypen eine sehr eingeschränkte Bedeutung. Daher müssen wir benutzerdefinierte Statusübergänge verwenden, um den Status von benutzerdefinierten Posts zu verwalten. Sehen wir uns praktische Szenarien an, um die Notwendigkeit von benutzerdefinierten Post-Status zu verstehen.

Online-Produktverkaufssystem

Heutzutage werden die meisten Produkte online mit Einkaufswagen verkauft. Es gibt viele vorhandene WordPress-Sites für den Verkauf von Produkten. In einem solchen System benötigen wir einen benutzerdefinierten Post-Typ namens Products, um alle Informationen zu Produkten zu speichern.

Denken Sie jetzt darüber nach, wie wir die vorhandenen Post-Status in Produkte einordnen können. Status wie Entwurf, Zukunft, und steht aus haben keine Bedeutung im Zusammenhang mit Produkten. Daher brauchen wir benutzerdefinierte Status, um auf solche Szenarien eingehen zu können. Lassen Sie uns über die möglichen Status von Produkten nachdenken.

Normalerweise können wir Status wie verwenden Auf Lager, Bestellt, Versandt, Geliefert, und Ist zurückgekommen für Produkte. Schauen wir uns den folgenden Bildschirm für mögliche Statusübergänge an.

Produkt beginnt mit dem Status Auf Lager, und endet mit dem Status Geliefert oder Ist zurückgekommen. Mit jedem Statusübergang können verschiedene Aufgaben ausgeführt werden. Zum Beispiel, wenn sich der Produktstatus von ändert Auf Lager zu Bestellt, Wir können die Aktienwerte aktualisieren. Die für dieses Szenario zu verwendende Aktion ist also Auf Lager _to_ bestellt. Wir können ähnliche Aktivitäten bei anderen Statusübergängen durchführen, um den Prozess zu verbessern.

Bibliotheksverwaltungssystem

Dies ist ein weiteres Szenario, in dem benutzerdefinierte Status sehr wichtig werden. In einem Bibliothekssystem ändert sich der Status eines Buches entsprechend den Aktivitäten, die von Bibliotheksmitgliedern ausgeführt werden. In einem solchen System kann ein Buch Status haben wie Geliehen, Erneuert, Verfügbar, und Überfällig. Betrachten wir den folgenden Bildschirm für mögliche Statusübergänge.

In diesem Szenario sind Statusübergänge im Vergleich zum vorherigen Szenario wesentlich komplexer geworden. Ein Buch beginnt seinen Prozess vom Verfügbar Status und wechselt zwischen den anderen Status, bis sie wieder in den Verfügbar Status. Betrachten wir ein Szenario für die Verwendung von Post-Status-Übergängen in diesem System.

Im Allgemeinen gibt es eine maximale Anzahl von Erneuerungen eines einzelnen Buches. Also wenn sich der Buchstatus von ändert Erneuert zu Verfügbar, Wir können das Mitgliedskonto überprüfen, um zu sehen, ob das Mitglied die Höchstgrenze bereits erreicht hat, und die weitere Erneuerung des Mitglieds blockieren.

Hier haben wir zwei Szenarien für die Notwendigkeit von benutzerdefinierten Statusübergängen diskutiert. Echte Anwendungen sind viel komplexer und daher gibt es viele Anlässe für den Bedarf an benutzerdefinierten Statusübergängen.


Einpacken

Übergänge nach dem Status sind eine sehr effektive Möglichkeit, um neue Funktionen hinzuzufügen oder den Arbeitsfluss in Anwendungen zu verwalten. Bei dieser Technik gibt es jedoch einige Nachteile. Stellen Sie sich eine Situation vor, in der Sie eine große Anzahl von Benachrichtigungen in einem einzigen Post-Status-Übergang senden müssen.

In solchen Fällen können Sie den Statusübergang erst abschließen, wenn alle Benachrichtigungen gesendet wurden. Daher ist es schwierig, Posts zu veröffentlichen. Post-Status-Übergänge sollten im Allgemeinen nicht für umfangreiche Prozesse verwendet werden, die viel Zeit in Anspruch nehmen. Es liegt an Ihnen, auf der Grundlage der Anforderungen eine kluge Wahl zu treffen.

Nun habe ich einige Fragen an Sie und ich hoffe, Sie alle können Ihr Wissen teilen, indem Sie diese Fragen beantworten:

  1. Möchten Sie, dass WordPress standardmäßig benutzerdefinierte Status unterstützt? und warum?
  2. Was sind die anderen praktischen Szenarien für die Verwendung von Post-Status-Übergängen??
  3. Welche Arten von Funktionen möchten Sie für Übergänge nach dem Status bereitstellen??
  4. Wie würden Sie einen umfangreichen Prozess mit Post-Status-Übergängen planen??

Wir freuen uns, bald von Ihnen zu hören.