Content Marketing

PHP: Brug WordPress API til at opbygge en kort kode for at angive undersider

Vi arbejder på en ganske kompleks implementering for en virksomhedsklient lige nu. Webstedet bygges i WordPress, men har masser af klokker og fløjter. Når jeg laver denne type arbejde, kan jeg ofte gemme den brugerdefinerede kode til senere genbrug på andre websteder. I dette tilfælde troede jeg, det var en så nyttig funktion, jeg ville dele den med verden. Vi bruger Avada WordPress-tema med Fusion Page Builder som et overordnet tema og implementerer en hel del brugerdefineret kode i vores børnetema.

WordPress har allerede et par funktioner i sin API, der kan bruges til at liste undersider, som wp_list_pages og get_pages. Problemet er, at de ikke returnerer nok information, hvis du håber dynamisk at oprette en liste med en masse information.

For denne kunde ønskede de at skrive jobbeskrivelser og få listen over jobåbninger automatisk genereret i faldende rækkefølge efter deres udgivelsesdato. De ønskede også at vise et uddrag af siden.

Så først måtte vi tilføje uddragssupport til sideskabelonen. I funktioner.php for deres tema tilføjede vi:

add_post_type_support ('side', 'uddrag');

Derefter var vi nødt til at registrere en brugerdefineret kortkode, der ville generere listen over undersider, links til dem og uddraget for dem. Gør dette, vi er nødt til at bruge WordPress Loop. I functions.php tilføjede vi:

// Liste undersider i en listefunktion dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Ingen poster', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'side', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ forælder = ny WP_Query ($ args); hvis ($ parent-> have_posts ()) {$ string. = $ content. ' '; mens ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; hvis (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; i sidste ende; } andet {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); returnere $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Nu kan kortkoden implementeres overalt på siden for at vise børnesiderne med et link og et uddrag. Anvendelse:

[list_subpages aclass = "button" ifempty = "Vi beklager, vi har i øjeblikket ingen ledige stillinger."] Liste over job [/ list_subpages]

Resultatet er en pæn, ren ikke-ordnet liste over de offentliggjorte job, som er børnesider under deres karriereside.

Hvis der ikke blev offentliggjort nogen job (ingen underordnede sider), vil den offentliggøre:

Beklager, vi har i øjeblikket ingen ledige stillinger.

Hvis der blev offentliggjort job (underordnede sider), vil det offentliggøre:

Liste over job:

Douglas Karr

Douglas Karr er CMO for OpenINSIGHTS og grundlæggeren af Martech Zone. Douglas har hjulpet snesevis af succesfulde MarTech-startups, har hjulpet med due diligence på over $5 mia. i Martech-opkøb og -investeringer og fortsætter med at hjælpe virksomheder med at implementere og automatisere deres salgs- og marketingstrategier. Douglas er en internationalt anerkendt digital transformation og MarTech-ekspert og foredragsholder. Douglas er også udgivet forfatter til en Dummies guide og en bog om virksomhedsledelse.

Relaterede artikler

Tilbage til toppen knap
Luk

Adblock fundet

Martech Zone er i stand til at give dig dette indhold uden omkostninger, fordi vi tjener penge på vores websted gennem annonceindtægter, affilierede links og sponsorater. Vi ville sætte pris på, hvis du ville fjerne din annonceblokering, mens du ser vores websted.