Oggi continueremo con la nostra miniserie in inserti tramite il front-end, ma in questa parte vedremo esclusivamente come modificare e Elimina post attraverso il front-end. Copriremo su come visualizzare tutti i nostri post, modificarli ed eliminarli. Quindi, prepariamoci e cominciamo!
Ora siamo nella seconda parte della nostra mini-serie, e se non hai letto la prima parte, ti consiglio di farlo perché ci riprenderemo da dove avevamo lasciato. Il nostro obiettivo dopo aver completato questa mini serie dovrebbe consentire all'utente di inviare post tramite il front-end, insieme alla modifica e all'invio dei post nel cestino; tutto senza essere nella Dashboard di WordPress. Questi metodi possono essere utilizzati sia in un tema che in un plug-in ed essere molto adattabili per ottenere presentazioni molto avanzate e complesse.
La demo e i file di download sono un tema ridotto che è stato creato per gli scopi di questo tutorial.
Quindi apri il tuo editor di testo preferito e cominciamo!
Inizieremo visualizzando in modo più efficace tutti i nostri post, questo ci darà una migliore gestione dei nostri post e ci consentirà di eseguire azioni su ogni post. Poiché stiamo usando un tema per svilupparlo, creeremo un modello di pagina chiamato modello-vista-posts.php. Inoltre, creeremo una nuova pagina tramite la nostra Dashboard di WordPress Pagine -> Aggiungi nuovo -> Attributi di pagina come assegnare il modello a questa pagina.
Ora abbiamo il nostro modello di pagina e la pagina creata nel nostro tema WordPress, possiamo iniziare a stampare tutti i nostri post. Creeremo una tabella molto semplice per produrre tutte le informazioni necessarie. Inizia creando una tabella con alcune intestazioni, come segue:
Titolo del post | Post Estratto | Post Status | Azioni |
---|---|---|---|
Ora che abbiamo il nostro tavolo, possiamo iniziare a riempire le righe della nostra tabella con le informazioni relative ai nostri post. Inizieremo prima creando un ciclo personalizzato di WordPress, per assicurarci di ricevere tutti i post e tutti gli stati dei post, perché vogliamo essere in grado di vedere quali post sono in sospeso, bozze, pubblicati o persino inviati al cestino. Lo facciamo inserendo il seguente bit di codice:
'post', 'posts_per_page' => '-1', 'post_status' => array ('publish', 'pending', 'draft', 'private', 'trash'))); ?>
Questo è il nostro oggetto di query con tutti i nostri parametri personalizzati che abbiamo impostato. Puoi leggere tutti i diversi parametri che possiamo impostare dal codice WordPress. Quindi eseguiremo il nostro ciclo WordPress subito dopo le intestazioni della tabella, in questo modo:
have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Brillante! Abbiamo il nostro set da tavola e il nostro set di loop WordPress. Ora abbiamo solo bisogno di inserire le nostre informazioni relative alle intestazioni delle nostre tabelle. Sostituisci le nostre celle di tabella vuote con il seguente codice:
Modifica Elimina
Il codice che abbiamo appena inserito inizia con l'emissione del nostro titolo del post e l'articolo successivo sta emettendo un estratto del nostro post. Quindi otteniamo lo stato attuale del post e passiamo l'ID del post a questa funzione e infine, inseriamo due link modificare e Elimina, li useremo più tardi come nostre azioni.
Brillante, stiamo facendo buoni progressi. Abbiamo impostato il nostro tema per visualizzare tutti i nostri post tramite il front-end. Successivamente, stiamo andando a modificare il post. Iniziamo questo creando un altro modello di pagina chiamato template-edit-posts.php. Inoltre, creeremo una nuova pagina tramite la nostra Dashboard di WordPress Pagine -> Aggiungi nuovo -> Attributi di pagina e assegna il modello a questa pagina.
Prima di iniziare a modificare questo modello, torniamo al nostro modello-vista-posts.php file e assicurati di passare l'ID postale all'URL in cui recupereremo l'ID dalla nostra pagina di modifica. Lo facciamo usando la funzione WordPress: add_query_arg
. Inseriremo il seguente codice subito prima del nostro link Modifica:
Il codice che abbiamo appena inserito, prima imposta il nome del parametro, quindi in seguito viene visualizzato l'ID del post e quindi viene visualizzato l'ID del modello di modifica della pagina e l'aggiunta dell'argomento URL personalizzato. Lo useremo per recuperare le informazioni nel nostro modello Modifica.
Infine, lo stamperemo nel nostro link di modifica, rendendo il nostro link di modifica come segue:
"> Modifica
Ora che abbiamo impostato per quando l'utente fa clic su Modifica, passa al nostro modello di modifica con l'ID postale. Torneremo al nostro template-edit-posts.php file e inizia a inserire il nostro codice.
Copieremo sul nostro Modulo dal nostro template-insert-posts.php e inseriscilo nel nostro modello di modifica. Stiamo copiando il seguente codice nel nostro modello di modifica e rimuoviamo tutti i valori dai nostri input e textarea, rendendo il nostro modulo come segue:
Ora che abbiamo impostato il nostro modulo di modifica della pagina, dovremo utilizzare il ciclo di WordPress per esaminare tutti i nostri post e trovare solo i nostri post che corrispondono al post ID passato al nostro URL. Lo faremo eseguendo il ciclo di WordPress nella parte superiore del nostro file:
'post', 'posts_per_page' => '-1')); ?> have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Per il ciclo WordPress per garantire che stiamo recuperando solo le informazioni del post specifico, inseriremo il seguente codice che garantisce che stiamo ottenendo l'ID post corretto, all'interno del nostro ciclo:
if (isset ($ _GET ['post'])) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID;
Quello che abbiamo appena inserito è quello di ottenere il parametro URL e testarlo contro l'ID post, e quando ha trovato una corrispondenza assegneremo quell'ID al nostro current_post
variabile. A seguito di ciò inseriremo del codice per ottenere le nostre informazioni per quanto riguarda il nostro post, inserire il seguente codice appena sotto il nostro current_post
assegnazione:
$ title = get_the_title (); $ content = get_the_content ();
Il nostro codice finale dovrebbe assomigliare a questo:
if (isset ($ _GET ['post'])) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; $ title = get_the_title (); $ content = get_the_content ();
È grandioso, stiamo facendo buoni progressi. Ora che abbiamo tutte le nostre informazioni, abbiamo solo bisogno di inserirlo nei nostri valori di modulo, questo è semplice in quanto assegneremo solo valori per entrambi i nostri campi. Insieme a questo aggiorneremo il nome del nostro pulsante su Aggiorna post. Il seguente codice è il nostro modulo aggiornato con il modulo popolato con il titolo e il contenuto del post di modifica:
Come puoi vedere dal codice, abbiamo assegnato il valore di input del Post Title per l'output della variabile title e all'interno della nostra textarea abbiamo emesso la nostra variabile content, ma come potresti aver notato che quando clicchiamo su Update Post non succede nulla, questo è perché non l'abbiamo ancora gestito, e lo faremo ora.
Dovremo tornare ai nostri template-insert-posts.php file e copieremo la convalida del modulo PHP nel nostro modello di modifica. Ora che abbiamo copiato la convalida del nostro modulo, apporteremo alcune modifiche e inseriremo del codice. Abbiamo bisogno di recuperare il current_post
variabile nella convalida del nostro modulo, e lo facciamo impostando una variabile globale e la inseriamo sopra la nostra convalida:
global $ current_post;
Successivamente, apporteremo una modifica al nostro post_information
array. Poiché stiamo aggiornando il nostro post, dobbiamo assicurarci che aggiornerà il Post corretto e non tutti i post, lo facciamo inserendo un parametro ID nel nostro post_information
array. Realizzare il nostro array come segue:
$ post_information = array ('ID' => $ current_post, 'post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' => $ _POST ['postContent'], 'post_type' => 'post' , 'post_status' => 'in sospeso');
Infine, apporteremo una modifica finale che garantirà che stiamo aggiornando il post e non inserendo un nuovo post. Lo facciamo semplicemente cambiando la funzione che usiamo, invece di usare wp_insert_post
, useremo wp_update_post
. Fare il nostro codice finale come segue:
$ post_id = wp_update_post ($ post_information);
E questo è tutto per la modifica di post attraverso il front-end. Infine, per questa parte della miniserie andremo su come eliminare i post.
Ora ci sono molti modi diversi per cancellare i post e ci sono state molte discussioni differenti nel metodo migliore su come ottenere questo, da alcune persone questo è probabilmente il metodo sbagliato, ma ritengo che funzioni perfettamente bene per questa situazione attuale. Useremo la funzione get_delete_post_link
.
Passeremo questa funzione al nostro collegamento Elimina, oltre a passare l'ID del post, come segue:
"> / Elimina
Ed è così semplice eliminare i messaggi tramite il front-end. Ci limiteremo a espandere un po 'questo per assicurarci che non avremo errori e daremo un po' più di notifica all'utente che stiamo cancellando un post. Lo facciamo inserendo una funzione di conferma molto semplice sul nostro onclick, come segue:
?') "href =""> Elimina
Infine, avvolgeremo una condizione attorno al nostro collegamento di eliminazione, per garantire che possiamo eliminare un post solo se lo stato corrente del post non è già presente nel Cestino. Lo facciamo come segue:
?') "Href =""> Elimina
E questo è tutto! Sei in grado di inviare post nel Cestino. Nel caso foste curiosi del metodo alternativo su come eliminare i post, lo spiegherò molto brevemente.
Il metodo è molto semplice per modificare i post, passando il post ID all'URL e aggiungendo un parametro di Elimina
e controllando se il valore di questo parametro è vero, e se è vero allora passa il wp_trash_post
funzione al collegamento. Questo è molto semplice e molto efficace, ma per la nostra situazione attuale get_delete_post_link
funziona perfettamente.
Questa è la parte 2 completa! Ora siamo in grado di inserire post, modificare ed eliminare messaggi tramite il front-end. Abbiamo coperto molti contenuti finora, e nella prossima parte scaveremo un po 'oltre.
Nella parte successiva, daremo un'occhiata ai campi personalizzati e altro ancora.
Mi piacerebbe dire un ENORME grazie per aver dedicato del tempo a leggere il mio tutorial, spero che sia stato di aiuto. Sentitevi liberi di lasciare commenti e farò del mio meglio per aiutarli e rispondervi, se non potete contattarmi direttamente attraverso il mio sito web: www.VinnySingh.co o Twitter @VinnySinghUK
Restate sintonizzati per la parte 3!