Innlegg via frontend Redigering og sletting

I dag fortsetter vi med min mini-serie å sette inn innlegg via frontenden, men i denne delen vil vi se utelukkende på hvordan redigere og slette innlegg via frontenden. Vi vil dekke hvordan du viser alle innleggene våre, rediger dem og slett dem. Så, la oss bli klare og begynne!


Introduksjon

Vi er nå i del to av vår mini-serie, og hvis du ikke har lest den første delen, anbefaler jeg deg fordi vi plukker opp fra hvor vi sluttet. Vårt mål etter å ha fullført denne mini-serien, bør tillate brukeren å sende inn innlegg via frontenden, sammen med redigering og sending av innleggene til søppelet. alt uten å være i WordPress Dashboard. Disse metodene kan brukes i både et tema eller et plugin og være svært tilpasningsdyktig for å oppnå svært avanserte og komplekse innleveringer.

Demoen og nedlastingsfilene er et fjernet tema som er opprettet for bare formålet med denne opplæringen.

Så åpne din favoritt tekstredigerer og la oss begynne!


Trinn 1 Viser våre innlegg

Vi vil begynne med å vise alle våre innlegg mer effektivt, dette vil gi oss bedre ledelse over innleggene våre og tillate oss å utføre handlinger på hvert innlegg. Når vi bruker et tema for å utvikle dette, vil vi opprette en sidemal som heter mal-view-posts.php. Også, vi vil opprette en ny side via vårt WordPress Dashboard Sider -> Legg til ny -> Sideattributter som tilordne malen til denne siden.

Vi har nå vår side mal og side opprettet i vårt WordPress tema, vi kan begynne å skrive ut alle våre innlegg. Vi vil skape et veldig enkelt bord for å gi ut all nødvendig informasjon. Begynn med å lage et bord med noen overskrifter, som følger:

 
Posttittel Post Utdrag Poststatus handlinger

Nå som vi har bordet på plass, kan vi begynne å fylle tabellrommene våre med informasjon om våre innlegg. Vi begynner med å lage en tilpasset WordPress-løkke for å sikre at vi får alle innleggene og alle poststatusene, fordi vi vil kunne se hvilke innlegg som er ventet, utkast, publisert eller til og med sendt til papirkurven. Vi gjør dette ved å sette inn følgende bit kode:

  'post', 'posts_per_page' => '-1', 'post_status' => array ('publiser', 'venter', 'utkast', 'privat', 'søppel'))); ?>

Dette er vårt søkeobjekt med alle våre tilpassede parametere vi har satt. Du kan lese om alle de forskjellige parametrene vi kan angi fra WordPress Codex. Neste vil vi kjøre vår WordPress-løkke like etter våre tabelloverskrifter, slik:

 have_posts ()): mens ($ query-> have_posts ()): $ query-> the_post (); ?>       

Strålende! Vi har vårt bordssett, og vår WordPress loop sett. Nå trenger vi bare å skrive inn vår informasjon som er relatert til tabelloverskriftene våre. Bytt ut våre tomme tabellceller med følgende kode:

     Rediger Slett 

Koden som vi nettopp har lagt inn, begynner først med å skrive ut posttittelen, og neste punkt legger ut et utdrag av vårt innlegg. Vi får da den nåværende statusen til innlegget og sender post-ID til denne funksjonen, og til slutt legger vi inn to koblinger Redigere og Slett, Vi vil bruke disse senere som våre handlinger.


Trinn 2 Redigerer våre innlegg

Strålende, vi gjør gode fremskritt. Vi har satt opp vårt tema for å se alle innleggene våre via frontenden. Deretter skal vi redigere innlegget. Vi starter dette ved å opprette en annen sidemal som heter mal-redigerings posts.php. Også, vi vil opprette en ny side via vårt WordPress Dashboard Sider -> Legg til ny -> Sideattributter og tilordne malen til denne siden.

Før vi begynner å redigere denne malen, la oss hoppe tilbake til vår mal-view-posts.php fil og sørg for at vi sender passordet til nettadressen der vi henter IDen fra redigeringssiden vår. Vi gjør dette ved å bruke WordPress-funksjonen: add_query_arg. Vi legger inn følgende kode rett før linken Rediger:

 

Koden vi nettopp har satt inn, angir først parameterens navn, og deretter følger dette ID-en til innlegget, og vi får IDen til vår Rediger side-mal og legger til vårt tilpassede URL-argument. Vi bruker dette for å hente informasjonen i Rediger-malen.

Til slutt vil vi sende dette inn i redigeringslenken vår, slik at vi redigerer linken som følger:

 "> Rediger

Nå som vi har satt den til når brukeren klikker på Rediger, går den til Rediger mal med Post-ID. Vi vil gå tilbake til vår mal-redigerings posts.php fil og begynn å sette inn koden vår.

Vi vil kopiere over vår Form fra vår mal-insert-posts.php og sett inn dette i vår Rediger mal. Vi kopierer følgende kode inn i redigeringsmal, og fjerner alle verdiene fra våre innganger og tekstområder, og gjør vårt skjema som følger:

 

Nå som vi har vårt Rediger side skjema sett, må vi bruke WordPress-løkken for å gå gjennom alle innleggene våre og bare finne våre innlegg som samsvarer med post-IDen som sendes til vår URL. Vi vil gjøre dette ved å kjøre WordPress-løkken øverst på filen vår:

  'innlegg', 'posts_per_page' => '-1')); ?> have_posts ()): mens ($ query-> have_posts ()): $ query-> the_post (); ?>   

For WordPress-sløyfen for å sikre at vi bare henter informasjonen til det bestemte innlegget, vil vi sette inn følgende kode som sikrer at vi får riktig post-ID, inne i vår sløyfe:

 hvis (isset ($ _GET ['post'])) hvis ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; 

Det vi nettopp har satt inn, er å få URL-parameteren og teste den mot post-ID, og ​​når den har funnet en kamp, ​​vil vi tildele den IDen til vår current_post variabel. Etter dette vil vi sette inn noen kode for å få vår informasjon med hensyn til vårt innlegg, sett inn følgende kode rett under vår current_post oppdrag:

 $ title = get_the_title (); $ content = get_the_content ();

Vår siste kode skal se slik ut:

 hvis (isset ($ _GET ['post'])) hvis ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; $ title = get_the_title (); $ content = get_the_content (); 

Dette er flott, vi gjør gode fremskritt. Nå som vi har all vår informasjon, trenger vi bare å sette den inn i våre formverdier, dette er enkelt, da vi bare tilordner verdier for begge feltene våre. Sammen med dette vil vi oppdatere navnet på vår knapp til Oppdater innlegg. Følgende kode er vår oppdaterte skjema med skjemaet fylt med tittelen og innholdet i redigeringsposten:

 

Som du kan se fra koden, har vi tilordnet inntastingsverdien for Posttittel for å utgjøre tittelvariabelen, og inne i tekstområdet har vi utgått innholdsvariabelen, men som du kanskje har lagt merke til at når dette klikker Oppdater post, skjer ingenting dette. er fordi vi ikke har håndtert dette ennå, og vi skal gjøre dette nå.

Vi må hoppe tilbake til vår mal-insert-posts.php fil og vi skal kopiere vår PHP-form validering til vår Rediger mal. Nå som vi har kopiert over skjema validering, vil vi gjøre noen endringer og sette inn noen kode. Vi må hente current_post variabel i skjema validering, og vi gjør dette ved å sette en global variabel og vi legger inn dette over validering vår:

 global $ current_post;

Deretter vil vi gjøre en endring til vår post_information array. Når vi oppdaterer innlegget vårt, må vi sørge for at det oppdateres riktig Post og ikke alle innlegg, vi gjør dette ved å sette inn en ID-parameter i vår post_information array. Gjør vårt utvalg som følger:

 $ post_information = array ('ID' => $ current_post, 'post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' => $ _POST ['postContent'], 'post_type' => 'innlegg' , 'post_status' => 'venter');

Endelig vil vi gjøre en endelig endring som vil sikre at vi oppdaterer innlegget og ikke legger inn et nytt innlegg. Vi gjør dette ved ganske enkelt å endre funksjonen vi bruker, i stedet for å bruke wp_insert_post, vi skal bruke wp_update_post. Gjør vår siste kode som følger:

 $ post_id = wp_update_post ($ post_information);

Og det er det for å redigere innlegget via frontenden. Til slutt, for denne delen av mini-serien vil vi gå inn på hvordan du sletter innlegg.


Trinn 3 Sletter våre innlegg

Nå er det mange forskjellige måter å slette innlegg på, og det har vært mange forskjellige diskusjoner i den beste metoden for hvordan dette skal oppnås. Noen av disse er trolig den forkerte metoden, men jeg føler at det fungerer perfekt bra for denne nåværende situasjonen. Vi skal bruke funksjonen get_delete_post_link.

Vi overfører denne funksjonen til vår Slett Link, sammen med passordets ID, som følger:

 "> / Slett

Og det er så enkelt å slette innlegg via frontenden. Vi vil bare utvide dette litt for å sikre at vi ikke vil ha noen feil og gi litt mer brukervarsling om at vi sletter et innlegg. Vi gjør dette ved å sette inn en veldig enkel bekreftelsesfunksjon til vår onclick, som følger:

 ?') "href =""> Slett

Til slutt vil vi pakke inn en betingelse rundt vår slettekobling for å sikre at vi bare kan slette et innlegg hvis den nåværende statusen til innlegget ikke allerede er i søppel. Vi gjør dette på følgende måte:

  ?') "Href =""> Slett 

Og det er det! Du kan sende innlegg til papirkurven. Bare hvis du var nysgjerrig på den alternative metoden for hvordan du sletter innlegg, vil jeg forklare det veldig kort.

Metoden er veldig enkel å redigere innlegg, ved å sende post-ID til nettadressen sammen med å legge til en parameter for slette og kontroller om verdien av denne parameteren er sant, og hvis det er sant, send passordet wp_trash_post funksjonen til lenken. Dette er veldig enkelt og veldig effektivt, men for vår nåværende situasjon get_delete_post_link fungerer perfekt bra.


Konklusjon

Det er del 2 komplett! Vi kan nå sette inn innlegg, redigere og slette innlegg via frontenden. Vi har dekket mye innhold så langt, og i neste del vil vi grave litt lenger.

Innenfor neste del skal vi se på tilpassede felt og mer.

Jeg vil gjerne si en stor takk for at du har brukt tid til å lese opplæringen min, håper jeg det hjalp. Vær så snill å legge igjen kommentarer, og jeg vil prøve mitt beste for å hjelpe og svare på dem, hvis ikke, kan du alltid kontakte meg direkte via nettsiden min: www.VinnySingh.co eller Twitter @VinnySinghUK

Hold deg oppdatert for del 3!