Content Marketing

PHP: Använd WordPress API för att skapa en kortkod för att lista undersidor

Vi arbetar med en ganska komplex implementering för en företagsklient just nu. Webbplatsen byggs i WordPress men har massor av klockor och visselpipor. När jag gör den här typen av arbete vill jag ofta spara den anpassade koden för att återanvändas senare på andra webbplatser. I det här fallet tyckte jag att det var en så användbar funktion, jag ville dela den med världen. Vi använder Avada WordPress-tema med Fusion Page Builder som ett överordnat tema och distribuera en hel del anpassad kod i vårt barns tema.

WordPress har redan ett par funktioner i sitt API som kan användas för att lista undersidor, som wp_list_pages och get_pages. Problemet är att de inte returnerar tillräckligt med information om du hoppas att dynamiskt skapa en lista med en massa information.

För den här kunden ville de lägga upp jobbbeskrivningar och att listan över lediga jobb automatiskt genereras i fallande ordning efter publiceringsdatum. De ville också visa ett utdrag av sidan.

Så först måste vi lägga till utdragstöd till sidmallen. I functions.php för deras tema lade vi till:

add_post_type_support ('sida', 'utdrag');

Sedan behövde vi registrera en anpassad kortkod som skulle generera listan med undersidor, länkar till dem och utdraget för dem. Gör detta, vi måste använda WordPress Loop. I functions.php lade vi till:

// Lista undersidor i en listfunktion dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Inga poster', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'sida', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ parent = ny WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; medan ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; slutligen; } annat {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); returnera $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Nu kan kortkoden implementeras på hela webbplatsen för att visa underordnade sidor med en länk och utdrag. Användande:

[list_subpages aclass = "button" ifempty = "Tyvärr har vi för närvarande inga lediga jobb."] Lista över jobb [/ list_subpages]

Resultatet är en fin, ren oordnad lista över publicerade jobb, som är barnsidor under deras karriärsida.

Om inga jobb publicerades (inga underordnade sidor) kommer det att publiceras:

Tyvärr har vi för närvarande inga lediga tjänster.

Om det publicerades jobb (underordnade sidor) kommer det att publiceras:

Lista över jobb:

Douglas Karr

Douglas Karr är CMO för Öppna INSIGHTS och grundaren av Martech Zone. Douglas har hjälpt dussintals framgångsrika MarTech-startups, har hjälpt till med due diligence på över $5 miljarder i Martech-förvärv och investeringar, och fortsätter att hjälpa företag att implementera och automatisera sina försäljnings- och marknadsföringsstrategier. Douglas är en internationellt erkänd digital transformations- och MarTech-expert och talare. Douglas är också en publicerad författare till en Dummies guide och en bok om företagsledarskap.

Relaterade artiklar

Tillbaka till toppen knappen
Stänga

Adblock upptäckt

Martech Zone kan ge dig detta innehåll utan kostnad eftersom vi tjänar pengar på vår webbplats genom annonsintäkter, affiliate-länkar och sponsring. Vi skulle uppskatta om du tar bort din annonsblockerare när du tittar på vår webbplats.