Come implementare le transizioni Post Status per applicazioni Web personalizzate

WordPress utilizza post e pagine per fornire il contenuto dinamico per le applicazioni. L'introduzione di tipi di messaggi personalizzati ha aumentato la possibilità di sviluppare applicazioni complesse con WordPress.

In genere, i post normali passano attraverso un flusso di lavoro ben definito, prima che vengano pubblicati sul sito Web o sull'applicazione. Durante questo flusso di lavoro, vari stati vengono assegnati ai post e gestiti internamente da WordPress.

Gli stati dei post possono essere utilizzati come una potente tecnica per la gestione dello stato in un'applicazione Web personalizzata. In questo articolo, discuteremo come utilizzare gli stati e le transizioni dei post personalizzati di WordPress per creare applicazioni che vadano oltre i tradizionali siti Web o blog.

Hai esperienza nel lavorare con transizioni di stato post personalizzate? Tutti voi siete invitati a discutere le vostre esperienze.


Comprendere lo stato di WordPress Post

WordPress usa il wp_posts tabella per memorizzare sia i messaggi che le pagine. Lo stato di un post definisce uno stato temporaneo fino a quando non viene pubblicato sul sito web. Generalmente, lo stato di un post inizia come bozza e passa da uno stato esistente all'altro fino a quando arriva al pubblicato stato. Diamo un'occhiata alla lista di stati dei post di WordPress esistenti e ai loro ruoli.

  • pubblicare - Un post è considerato pubblicato e sarà disponibile pubblicamente sul sito web.
  • in attesa di - Un post è in attesa di revisione da un ruolo utente più alto. Questo stato sarà principalmente disponibile nel sito in cui sono presenti più autori o utenti che possono creare record su wp_post tavolo.
  • bozza - Un post viene salvato temporaneamente e l'autore del post può apportare ulteriori modifiche prima della pubblicazione.
  • auto-progetto - Un post viene temporaneamente salvato senza alcun contenuto e l'autore può apportare ulteriori modifiche prima della pubblicazione.
  • futuro - Un post è programmato per essere pubblicato in una data futura. Questa è una tecnica comunemente usata per mantenere la consistenza del post.
  • privato - Un post è visibile solo agli utenti registrati.
  • ereditare - Questa è considerata una revisione di un post. WordPress consente più revisioni dello stesso post.
  • spazzatura - Un post è considerato cancellato.

Di solito, ogni post inizia con a bozza o auto-progetto stato e continua a progredire fino a raggiungere lo stato finale desiderato. Nella prossima sezione, esamineremo le transizioni di stato di WordPress e il loro utilizzo.


Lavorare con le transizioni di stato post

La transizione di stato post è il processo di passaggio da uno stato a un altro stato. Di solito, le transizioni postali esistenti e le loro rispettive funzionalità sono gestite internamente da WordPress. Ma ci sono molti modi efficaci per aggiungere funzionalità con le transizioni postali. Di conseguenza, WordPress ora fornisce ganci per lavorare con tutte le transizioni di stato post; pertanto, possiamo aggiungere dinamicamente nuove funzionalità alla transizione di un post.

Vediamo come funziona davvero.

Supponiamo che vogliamo fare qualcosa quando lo stato del post cambia da bozza a futuro. Il codice seguente mostra come implementare una transizione dello stato del post per il requisito precedente.

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

WordPress fornisce un hook di azione del formato Vecchio status andate a copiarli nuovo status per ogni transizione post. Possiamo usare una funzione di callback per fornire funzionalità personalizzate. Questa funzione personalizzata prende come parametri il vecchio stato, il nuovo stato e l'oggetto post modificato.

Nella sezione precedente, abbiamo discusso su otto stati di post predefiniti. Qui abbiamo nove stati di post per le transizioni, incluso uno stato chiamato nuovo. Prima che il post venga salvato, sarà considerato come nuovo. Non appena il post verrà salvato nel database, si verificherà la transizione da new_to_ stato personalizzato.

Ora, vediamo le transizioni postali per pubblicare un post in circostanze normali.

La schermata precedente mostra le transizioni di un sito web con un singolo autore. Fondamentalmente, possiamo lavorare con le transizioni di stato post tra gli stati uniti con le frecce. In un singolo sito web dell'autore, le transizioni post sono più semplici rispetto ai siti Web di più autori.

Diamo un'occhiata al processo del sito web multi autore.

In un sito Web con più autori, la procedura viene leggermente modificata poiché tutti i post devono essere esaminati e approvati da una persona autorizzata prima della pubblicazione; pertanto, i siti Web con più autori hanno un ulteriore passaggio nel processo di transizione post.

Finora, abbiamo esaminato le transizioni di stato post predefinite in un sito Web WordPress. Ora la domanda è: in che modo queste transizioni saranno utili?

Esistono molti modi per utilizzare le transizioni di stato post nelle applicazioni. Diamo un'occhiata ad alcune delle funzionalità comunemente usate nelle transizioni di stato post.

  • Bozza a in attesa di - Notificare l'editor per rivedere il post.
  • in attesa di a Futuro - Notifica all'autore del post.
  • in attesa di a Futuro - Aggiungi il post al post calender sul sito.
  • Futuro a Pubblicare - Notifica agli abbonati tramite e-mail.

Queste sono alcune delle funzionalità più comuni e comuni fatte durante le transizioni postali. Fino ad ora, abbiamo esaminato il processo di transizione dello stato post per le statue predefinite.

Il vero valore delle transizioni di stato viene fornito con l'uso di stati di post personalizzati. La prossima sezione tratta i dettagli relativi al funzionamento con stati di post personalizzati per applicazioni Web personalizzate.


Introduzione allo stato postale personalizzato

WordPress sta lentamente diventando una struttura per lo sviluppo di applicazioni Web andando oltre il sistema generale di gestione dei contenuti. Lo stato dei post personalizzati diventa vitale per lo sviluppo di applicazioni complesse. WordPress ci consente di creare i nostri stati di post e supporta le transizioni tra questi stati. Diamo un'occhiata al seguente codice per la creazione di uno stato di post personalizzato.

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

Gli stati dei post personalizzati possono essere definiti utilizzando register_post_status funzione, che accetta un nome di stato post come parametro obbligatorio. Questa sintassi è simile al codice utilizzato per la creazione di tipi di post personalizzati. Inoltre possiamo passare ulteriori argomenti in base alle nostre preferenze. Puoi trovare un elenco completo di argomenti nel codice WordPress. Una volta utilizzato il codice precedente, il nuovo stato del post personalizzato verrà aggiunto all'elenco esistente.

Sfortunatamente, il pannello di amministrazione di WordPress non ha il supporto integrato per gli stati dei post personalizzati; pertanto, dobbiamo trovare modi alternativi per aggiungere stati di post personalizzati al pannello di amministrazione.

Spiegare il processo di integrazione dello stato di post personalizzato nel pannello di amministrazione va oltre lo scopo di questo articolo, quindi utilizzerò un plug-in esistente per mostrarti come lavorare con gli stati personalizzati.


Integrazione dello stato dei post personalizzati nel pannello di amministrazione

Fondamentalmente, dobbiamo personalizzare il post di amministrazione esistente per inviare metabox al fine di mostrare stati di post personalizzati nel Stato discesa campo. In questa fase il supporto di WordPress per questa funzione è molto limitato e quindi è difficile trovare plugin di qualità per lavorare con stati di post personalizzati.

Possiamo usare un plugin chiamato Modifica flusso per gestire gli stati dei post personalizzati. Puoi prendere una copia di questo plugin da http://wordpress.org/plugins/edit-flow/. Una volta attivato, vai a Stati personalizzati sezione sotto il Modifica flusso menu e otterrai una schermata simile alla seguente.

Possiamo utilizzare questo modulo per creare nuovi stati di post personalizzati. Questo plugin utilizza internamente il register_post_status funzione per definire lo stato personalizzato e memorizzarlo nel file wp_terms tavolo. Tutta la gestione dello stato è eseguita internamente dal plugin.

Idealmente, vorremmo vedere queste funzionalità disponibili all'interno del core di WordPress. Una volta creato, troverai l'elenco dei nuovi stati come mostrato nella seguente schermata.

Ora gli stati sono pronti e puoi andare alla schermata di creazione post e selezionare lo stato necessario prima di salvare il post. Quindi puoi implementare le transizioni di stato sul post per aggiungere più funzionalità o gestire le funzionalità esistenti.


Utilizzo delle transizioni di stato nelle applicazioni Web personalizzate

Abbiamo bisogno di utilizzare i tipi di post personalizzati in applicazioni web personalizzate. Gli stati dei post personalizzati svolgono un ruolo fondamentale nella gestione dei tipi di post personalizzati.

Di solito, i tipi di post esistenti hanno un significato molto limitato nel lavorare con i tipi di post personalizzati; pertanto, dobbiamo utilizzare transizioni di stato personalizzate per gestire lo stato dei post personalizzati. Esaminiamo gli scenari pratici per comprendere la necessità di stati di post personalizzati.

Sistema di vendita di prodotti online

Oggi la maggior parte dei prodotti viene venduta online utilizzando i carrelli della spesa. Ci sono molti siti WordPress esistenti per la vendita di prodotti. In tale sistema, abbiamo bisogno di un tipo di messaggio personalizzato chiamato Prodotti per memorizzare tutte le informazioni sui prodotti.

Ora pensa a come possiamo abbinare gli stati dei post esistenti ai prodotti. Status come bozza, futuro, e in attesa di non ha alcun significato nel contesto dei prodotti. Quindi abbiamo bisogno di stati personalizzati per soddisfare tali scenari. Pensiamo ai possibili stati per i prodotti.

Di solito, possiamo usare stati come Disponibile, Ordinato, Spedito, consegnato, e tornati per prodotti. Diamo un'occhiata alla seguente schermata per possibili transizioni di stato.

Il prodotto inizia con uno stato di Disponibile, e termina con uno stato di consegnato o tornati. Ogni transizione di stato può essere utilizzata per eseguire varie attività. Ad esempio quando lo stato del prodotto cambia da Disponibile a Ordinato, possiamo aggiornare i valori azionari. Quindi l'azione da utilizzare per questo scenario è In stock _to_ ordinato. Possiamo fare attività simili su altre transizioni di stato per migliorare il processo.

Sistema di gestione della libreria

Questo è un altro scenario in cui gli stati personalizzati diventano molto importanti. In un sistema di librerie, lo stato di un libro cambia in base alle attività svolte dai membri della biblioteca. In un sistema del genere un libro può avere status come Preso in prestito, Rinnovato, A disposizione, e in ritardo. Consideriamo la seguente schermata per possibili transizioni di stato.

In questo scenario, le transizioni di stato sono diventate molto più complesse rispetto allo scenario precedente. Un libro inizia il suo processo dal A disposizione stato e passa tra altri stati fino a quando non ritorna al A disposizione stato. Consideriamo uno scenario per l'utilizzo delle transizioni di stato post in questo sistema.

Generalmente, esiste un limite massimo per il numero di rinnovi di un singolo libro. Quindi, quando lo stato del libro cambia da Rinnovato a A disposizione, possiamo controllare l'account membro per vedere se il membro ha già raggiunto il limite massimo e impedire al membro di rinnovare ulteriormente.

Qui, abbiamo discusso due scenari per la necessità di transizioni di stato personalizzate. Le applicazioni reali sono molto più complesse e quindi troverai molte occasioni per la necessità di transizioni di stato personalizzate.


Incartare

Le transizioni di stato post sono un modo molto potente per aggiungere nuove funzionalità o gestire il flusso di lavoro nelle applicazioni, ma ci sono alcuni inconvenienti con questa tecnica. Considera una situazione in cui devi inviare un numero elevato di notifiche in una singola transizione dello stato del post.

In questi casi non sarà possibile completare la transizione dello stato fino a quando non verranno inviate tutte le notifiche, quindi diventerà un compito difficile pubblicare i post. In generale, le transizioni di stato post non devono essere utilizzate per processi estesi che richiedono molto tempo. Sta a te scegliere saggiamente in base ai requisiti.

Ora ho alcune domande per te, e spero che tutti voi possiate condividere le vostre conoscenze rispondendo a queste domande:

  1. Vuoi che WordPress supporti gli stati personalizzati per impostazione predefinita? e perché?
  2. Quali sono gli altri scenari pratici del mondo reale per l'utilizzo delle transizioni di stato post?
  3. Quali sono i tipi di funzionalità che vorresti fornire con le transizioni di stato post?
  4. Come penseresti di implementare un ampio processo con le transizioni di stato post?

Attendiamo un vostro riscontro.