WordPress bruker innlegg og sider for å gi det dynamiske innholdet for applikasjoner. Innføringen av tilpassede innleggstyper har økt muligheten til å utvikle komplekse applikasjoner med WordPress.
Vanligvis går vanlige innlegg gjennom en veldefinert arbeidsflyt, før de blir publisert på nettstedet eller på søknaden. Under denne arbeidsflyten blir ulike statuser tilordnet innlegg og håndtert internt av WordPress.
Poststatuser kan brukes som en kraftig teknikk for å administrere status i et tilpasset webprogram. I denne artikkelen skal vi diskutere hvordan du bruker WordPress tilpassede innleggsstatuser og overganger til å bygge programmer som går utover de vanlige nettstedene eller bloggene.
Har du erfaring med å jobbe med tilpassede innleggsstatusoverganger? Alle dere er velkommen til å diskutere dine erfaringer.
WordPress bruker wp_posts
bord for å lagre både innlegg og sider. Statusen til et innlegg definerer en midlertidig tilstand til den blir publisert på nettsiden. Vanligvis starter et innleggs status som en utkast og bytter mellom eksisterende statuser til den kommer til publisert status. La oss ta en titt på den eksisterende WordPress-poststatuslisten og deres roller.
wp_post
bord.Vanligvis starter hvert innlegg med en utkast eller auto-utkast status og fortsetter å fortsette til den kommer til ønsket sluttstilling. I neste avsnitt skal vi se på statusoverganger for WordPress og deres bruk.
Post statusovergang er prosessen med å bytte mellom en status til en annen status. Vanligvis blir eksisterende postoverganger og deres respektive funksjonaliteter håndtert internt av WordPress. Men det er mange effektive måter å legge til funksjoner med postoverganger. Som et resultat, gir WordPress nå kroker for å arbeide med alle statusovergangene etter innlegget; Derfor kan vi dynamisk legge til nye funksjoner ved overgang fra innlegget.
La oss se hvordan det egentlig virker.
Anta at vi vil gjøre noe når innleggsstatusen endres fra utkast til framtid. Følgende kode viser deg hvordan du implementerer en overgangsstatusovergang for det forrige kravet.
funksjon callback_function_name ($ new_status, $ old_status, $ post) // Kode her add_action ('draft_to_future', 'callback_function_name', 10, 3);
WordPress gir en handlingskrok av formatet Old-status _to_ ny-status for hver postovergang. Vi kan bruke en tilbakeringingsfunksjon for å gi tilpasset funksjonalitet. Denne tilpassede funksjonen tar den gamle statusen, den nye statusen og det endrede postobjektet som parametere.
I den forrige delen diskuterte vi om åtte forhåndsdefinerte innleggsstatuser. Her har vi ni innleggsstatuser for overganger, inkludert en status som heter ny. Før innlegget blir lagret, vil det bli vurdert som nytt. Så snart posten lagrer til databasen, vil overgangen oppstå fra new_to_ tilpasset status.
Nå, la oss se postovergangene for å publisere et innlegg under normale omstendigheter.
Forrige skjerm viser postoverganger av et nettsted med en enkelt forfatter. I utgangspunktet kan vi jobbe med innleggsstatusoverganger mellom statusene som er forbundet med piler. I en enkelt forfatterwebside er postoverganger enklere sammenlignet med flere forfatterwebsteder.
Så la oss ta en titt på prosessen med multi author nettsted.
I et nettsted med flere forfattere blir prosessen litt endret, ettersom alle innleggene må vurderes og godkjennes av en autorisert person før publisering; Derfor har flere forfatternettsteder et ekstra skritt i innleggsovergangsprosessen.
Så langt har vi sett på standard innleggsstatusoverganger på et WordPress-nettsted. Nå er spørsmålet hvordan skal disse overgangene være nyttige?
Det er mange måter å bruke innleggsstatusoverganger i applikasjoner på. La oss se på noen av de vanlige funksjonalitetene i post-statusoverganger.
Dette er noen av de mest grunnleggende og vanlige funksjonalitetene som er gjort under postoverganger. Frem til nå har vi sett på statusovergangsprosessen for innlegg for forhåndsdefinerte statuer.
Den virkelige verdien av post statusoverganger kommer med bruk av egendefinerte innleggsstatuser. Den neste delen dekker detaljene om å jobbe med tilpassede innleggsstatuser for egendefinerte webapplikasjoner.
WordPress blir sakte et rammeverk for å utvikle webapplikasjoner ved å gå utover det generelle innholdsstyringssystemet. Tilpasset poststatus blir viktig for utviklingen av komplekse applikasjoner. WordPress gjør det mulig for oss å lage våre egne innleggsstatuser og støtter overganger mellom disse statusene. La oss ta en titt på følgende kode for å opprette en egendefinert innleggsstatus.
funksjon add_custom_post_status () register_post_status ('custom_status', $ args); add_action ('init', 'add_custom_post_status');
Tilpassede innleggsstatuser kan defineres ved hjelp av register_post_status
funksjon, som tar et innleggs statusnavn som den obligatoriske parameteren. Denne syntaksen ligner koden som brukes til opprettelse av tilpasset posttype. Vi kan også passere flere argumenter basert på våre preferanser. Du finner en komplett argumentliste i WordPress Codex. Når den ovennevnte koden er brukt, blir den nye tilpassede innleggsstatusen lagt til den eksisterende listen.
Dessverre har WordPress 'administrasjonspanel ikke den innebygde støtten for egendefinerte innleggsstatuser; Derfor må vi finne alternative måter å legge til egendefinerte innleggsstatuser på administrasjonspanelet.
Forklare prosessen med å integrere egendefinert innleggsstatus i administrasjonspanelet ligger utenfor rammen av denne artikkelen, så jeg skal bruke et eksisterende plugin for å vise deg hvordan du arbeider med egendefinerte statuser.
I utgangspunktet må vi tilpasse eksisterende admin innlegg sende metabox for å vise egendefinerte innleggsstatuser i Status rullegardinfelt. På dette stadiet er WordPress-støtte for denne funksjonen svært begrenset, og derfor er det vanskelig å finne kvalitetsplugger for å jobbe med tilpassede innleggsstatuser.
Vi kan bruke et plugin som heter Rediger flyt for å administrere egendefinerte innleggsstatuser. Du kan ta en kopi av dette pluginet fra http://wordpress.org/plugins/edit-flow/. Når du er aktivert, naviger til Tilpassede statuser delen under Rediger flyt menyen, og du vil få en skjerm som ligner på følgende.
Vi kan bruke dette skjemaet til å opprette nye egendefinerte innleggsstatuser. Denne plugin bruker internt register_post_status
funksjon for å definere egendefinert status og lagre den i wp_terms
bord. Alle statusadministrasjonene gjøres internt av plugin.
Ideelt sett vil vi gjerne se disse funksjonene tilgjengelig i WordPress-kjerne. Når du har opprettet, vil du finne listen over nye statuser som vist på følgende skjermbilde.
Nå er statusene klare, og du kan gå til opprettingsskjermbildet og velge den nødvendige statusen før du lagrer innlegget. Deretter kan du implementere statusoverganger på posten for å legge til flere funksjoner eller administrere eksisterende funksjoner.
Vi må gjøre bruk av egendefinerte innleggstyper i tilpassede webapplikasjoner. Egendefinerte innleggsstatuser spiller en viktig rolle i håndtering av egendefinerte innleggstyper.
Vanligvis har eksisterende posttyper en svært begrenset betydning i arbeid med egendefinerte innleggstyper; Derfor må vi bruke tilpassede statusoverganger til å administrere tilstanden til egendefinerte innlegg. La oss se på praktiske scenarier for å forstå behovet for tilpassede innleggsstatuser.
Disse dagene blir de fleste produktene solgt på nettet ved hjelp av handlekurver. Det er mange eksisterende WordPress-nettsteder for salg av produkter. I et slikt system må vi ha en egendefinert innleggstype kalt Produkter for å lagre all informasjon om produkter.
Nå tenk hvordan vi kan matche eksisterende poststatuser i produkter. Statuser som utkast, framtid, og i påvente av har ingen mening i sammenheng med produkter. Så vi trenger tilpassede statuser for å imøtekomme slike situasjoner. La oss tenke på mulige statuser for produkter.
Vanligvis kan vi bruke statuser som På lager, bestilt, Utsendt, leveres, og Returnert for produkter. La oss se på følgende skjerm for mulige statusoverganger.
Produktet starter med en status på På lager, og avsluttes med en status på leveres eller Returnert. Hver statusovergang kan brukes til å utføre ulike oppgaver. For eksempel når produktstatus endres fra På lager til bestilt, Vi kan oppdatere lagerverdiene. Så handlingen som skal brukes til dette scenariet er På lager _til_ bestilt. Vi kan gjøre lignende aktiviteter på andre statusoverganger for å forbedre prosessen.
Dette er et annet scenario der tilpassede statuser blir svært viktige. I et bibliotekssystem endres statusen til en bok i henhold til aktiviteter utført av bibliotekets medlemmer. I et slikt system kan en bok ha statuser som lånt, fornyet, Tilgjengelig, og Forfalt. La oss vurdere følgende skjerm for mulige statusoverganger.
I dette scenariet er statusoverganger blitt mye mer kompliserte sammenlignet med det forrige scenariet. En bok starter sin prosess fra Tilgjengelig status og bytter mellom andre statuser til den returnerer tilbake til Tilgjengelig status. La oss vurdere et scenario for bruk av innleggsstatusoverganger i dette systemet.
Vanligvis er det en grense for antall fornyelser av en enkelt bok. Så når bokstatusen endres fra fornyet til Tilgjengelig, Vi kan sjekke medlemskontoen for å se om medlemmet allerede har nådd maksimumsgrensen, og blokkere medlemmet fra å forny lenger.
Her diskuterte vi to scenarier for behovet for tilpassede statusoverganger. Ekte applikasjoner er mye mer komplekse, og derfor finner du mange anledninger for behovet for tilpassede statusoverganger.
Post statusoverganger er en svært kraftig måte å legge til nye funksjoner eller styre arbeidsflyten i applikasjoner, men det er noen ulemper med denne teknikken. Tenk på en situasjon der du må sende et stort antall varsler i en enkelt innleggsstatusovergang.
I slike tilfeller kan du ikke fullføre statusovergangen til alle meldingene er sendt, så det blir vanskelig å publisere innlegg. Vanligvis bør postoverganger ikke brukes til omfattende prosesser som tar lang tid. Det er opp til deg å velge klokt basert på kravene.
Nå har jeg få spørsmål til deg, og jeg håper dere alle kan dele din kunnskap ved å svare på disse spørsmålene:
Ser fram til å høre fra deg.