Content Marketing

PHP: gebruik de WordPress API om een ​​shortcode te maken om subpagina's weer te geven

We werken momenteel aan een vrij complexe implementatie voor een zakelijke klant. De site wordt gebouwd in WordPress, maar heeft een heleboel toeters en bellen. Als ik dit soort werk doe, bewaar ik vaak de aangepaste code om deze later op andere sites te hergebruiken. In dit geval vond ik het zo'n handige functie, ik wilde het met de wereld delen. We gebruiken de Avada WordPress-thema met de Fusion Page Builder als ouderthema, en het implementeren van nogal wat aangepaste code in ons child-thema.

WordPress heeft al een aantal functies in zijn API die kunnen worden gebruikt om subpagina's weer te geven, zoals wp_list_pages en get_pages. Het probleem is dat ze niet genoeg informatie retourneren als u hoopt dynamisch een lijst met een heleboel informatie te maken.

Voor deze klant wilden ze functiebeschrijvingen plaatsen en de lijst met vacatures automatisch laten genereren in aflopende volgorde op hun publicatiedatum. Ze wilden ook een fragment van de pagina laten zien.

Dus eerst moesten we fragmentondersteuning toevoegen aan de paginasjabloon. In functions.php voor hun thema hebben we toegevoegd:

add_post_type_support ('pagina', 'excerpt');

Vervolgens moesten we een aangepaste shortcode registreren die de lijst met subpagina's, links ernaar en het fragment voor hen zou genereren. Doe dit, we moeten de WordPress Loop. In functions.php hebben we toegevoegd:

// Subpagina's weergeven in een lijstfunctie dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Geen records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'pagina', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ parent = nieuwe WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; ondertussen; } anders {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); retourneer $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Nu kan de shortcode op de hele site worden geïmplementeerd om de onderliggende pagina's met een link en fragment te tonen. Gebruik:

[list_subpages aclass = "button" ifempty = "Sorry, we hebben momenteel geen vacatures."] Lijst met vacatures [/ list_subpages]

Het resultaat is een mooie, schone, ongeordende lijst van de gepubliceerde vacatures, die onderliggende pagina's zijn onder hun carrièrepagina.

Als er geen vacatures zijn gepubliceerd (geen onderliggende pagina's), wordt het volgende gepubliceerd:

Sorry, we hebben momenteel geen vacatures.

Als er vacatures zijn gepubliceerd (onderliggende pagina's), wordt het volgende gepubliceerd:

Lijst met vacatures:

Douglas Karr

Douglas Karr is CMO van INZICHTEN openen en de oprichter van de Martech Zone. Douglas heeft tientallen succesvolle MarTech-startups geholpen, heeft geholpen bij het due diligence-onderzoek van meer dan $ 5 miljard aan Martech-overnames en -investeringen, en blijft bedrijven helpen bij het implementeren en automatiseren van hun verkoop- en marketingstrategieën. Douglas is een internationaal erkend expert en spreker op het gebied van digitale transformatie en MarTech. Douglas is ook een gepubliceerde auteur van een Dummie's-gids en een boek over zakelijk leiderschap.

Gerelateerde artikelen

Terug naar boven knop
Sluiten

Adblock gedetecteerd

Martech Zone kan u deze inhoud gratis aanbieden omdat we inkomsten genereren met onze site via advertentie-inkomsten, gelieerde links en sponsoring. We zouden het op prijs stellen als u uw adblocker zou verwijderen terwijl u onze site bekijkt.