Content Marketing

PHP: Verwenden Sie die WordPress-API, um einen Shortcode zum Auflisten von Unterseiten zu erstellen

Wir arbeiten gerade an einer recht komplexen Implementierung für einen Unternehmenskunden. Die Seite wird in WordPress erstellt, hat aber eine Menge Schnickschnack. Wenn ich diese Art von Arbeit mache, speichere ich häufig den benutzerdefinierten Code, um ihn später auf anderen Websites wiederzuverwenden. In diesem Fall dachte ich, es sei eine so nützliche Funktion, dass ich sie mit der Welt teilen wollte. Wir benutzen die Avada WordPress-Theme mit dem Fusion Page Builder als übergeordnetes Thema und Bereitstellung einer Reihe von benutzerdefiniertem Code in unserem untergeordneten Thema.

WordPress hat bereits einige Funktionen in seiner API, mit denen Unterseiten wie wp_list_pages und get_pages aufgelistet werden können. Das Problem ist, dass sie nicht genügend Informationen zurückgeben, wenn Sie dynamisch eine Liste mit einer Reihe von Informationen erstellen möchten.

Für diesen Kunden wollten sie Stellenbeschreibungen veröffentlichen und die Liste der offenen Stellen wird automatisch in absteigender Reihenfolge bis zu ihrem Veröffentlichungsdatum generiert. Sie wollten auch einen Auszug der Seite anzeigen.

Also mussten wir zuerst der Seitenvorlage eine Auszugsunterstützung hinzufügen. In functions.php für ihr Thema haben wir hinzugefügt:

add_post_type_support ('Seite', 'Auszug');

Dann mussten wir einen benutzerdefinierten Shortcode registrieren, der die Liste der Unterseiten, Links zu ihnen und den Auszug für sie generiert. Tun Sie dies, wir müssen die verwenden Wordpress-Schleife. In functions.php haben wir hinzugefügt:

// Unterseiten in einer Listenfunktion auflisten dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (Array ('ifempty' => 'No Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'Publish_date', 'order' => 'DESC' ,); $ parent = new 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. = ' '; in der Zwischenzeit; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Jetzt kann der Shortcode auf der gesamten Site implementiert werden, um die untergeordneten Seiten mit einem Link und einem Auszug anzuzeigen. Verwendung:

[list_subpages aclass = "button" ifempty = "Leider haben wir derzeit keine offenen Stellen."] Liste der Jobs [/ list_subpages]

Das Ergebnis ist eine schöne, saubere, ungeordnete Liste der veröffentlichten Jobs, bei denen es sich um untergeordnete Seiten unter ihrer Karriereseite handelt.

Wenn keine Jobs veröffentlicht wurden (keine untergeordneten Seiten), wird Folgendes veröffentlicht:

Leider haben wir derzeit keine offenen Stellen.

Wenn Jobs veröffentlicht wurden (untergeordnete Seiten), wird Folgendes veröffentlicht:

Liste der Jobs:

Douglas Karr

Douglas Karr ist CMO von Öffnen Sie EINBLICKE und Gründer der Martech Zone. Douglas hat Dutzenden erfolgreicher MarTech-Startups geholfen, war bei der Due Diligence von MarTech-Akquisitionen und -Investitionen im Wert von über 5 Milliarden US-Dollar behilflich und unterstützt weiterhin Unternehmen bei der Umsetzung und Automatisierung ihrer Vertriebs- und Marketingstrategien. Douglas ist ein international anerkannter Experte und Redner für digitale Transformation und MarTech. Douglas ist außerdem Autor eines Dummie-Ratgebers und eines Buchs über Unternehmensführung.

Ähnliche Artikel

Nach oben-Taste
Menu

Adblock erkannt

Martech Zone ist in der Lage, Ihnen diese Inhalte kostenlos zur Verfügung zu stellen, da wir unsere Website durch Werbeeinnahmen, Affiliate-Links und Sponsoring monetarisieren. Wir würden uns freuen, wenn Sie Ihren Werbeblocker entfernen würden, während Sie unsere Website besuchen.