Inhoud bemarking

PHP: gebruik die WordPress API om 'n kortkode te bou om subbladsye te lys

Ons werk tans aan 'n ingewikkelde implementering vir 'n ondernemingskliënt. Die webwerf word in WordPress gebou, maar het baie klokkies en fluitjies. Dikwels, as ek hierdie soort werk doen, wil ek die pasgemaakte kode stoor om later weer op ander webwerwe te hergebruik. In hierdie geval het ek gedink dit is so 'n nuttige funksie, ek wil dit met die wêreld deel. Ons gebruik die Avada WordPress-tema met die Fusion Page Builder as 'n ouer tema, en die implementering van 'n hele paar persoonlike kode in ons kind tema.

WordPress het al 'n paar funksies in sy API wat gebruik kan word om subbladsye te lys, soos wp_list_pages en get_pages. Die probleem is dat hulle nie genoeg inligting teruggee as u hoop om 'n lys met 'n klomp inligting dinamies op te stel nie.

Vir hierdie kliënt wou hulle posbeskrywings plaas en die lys van werksgeleenthede word outomaties in dalende volgorde op hul publikasiedatum gegenereer. Hulle wou ook 'n uittreksel van die bladsy vertoon.

Eerstens moes ons uittrekselondersteuning by die bladsymodel voeg. In funksies.php vir hul tema, het ons bygevoeg:

add_post_type_support ('bladsy', 'uittreksel');

Dan moes ons 'n aangepaste kortkode registreer wat die lys van subbladsye, skakels daarna en die uittreksel daarvoor sou genereer. Doen dit, ons moet die WordPress-lus. In funksies.php het ons bygevoeg:

// Lys subbladsye in 'n lysfunksie dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (skikking ('ifempty' => 'Geen rekords', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'bladsy', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ ouer = nuwe WP_Query ($ args); as ($ ouer-> have_posts ()) {$ string. = $ inhoud. ' '; terwyl ($ ouer-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_die_titel ().' '; as (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; eindigend; } anders {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); retour $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Nou kan die kortkode op die hele webwerf geïmplementeer word om die kinderbladsye met 'n skakel en uittreksel te wys. Gebruik:

[list_subpages aclass = "button" ifempty = "Jammer, ons het tans geen werksgeleenthede nie."] Lys van poste [/ lys_subbladsye]

Die resultaat is 'n mooi, skoon, ongeordende lys van die gepubliseerde poste, wat kinderbladsye onder hul loopbaanblad is.

As daar geen werk gepubliseer is nie (geen kinderbladsye nie), sal dit die volgende publiseer:

Jammer, ons het tans geen werksgeleenthede nie.

As daar poste gepubliseer is (kinderbladsye), sal dit die volgende publiseer:

Lys van poste:

Douglas Karr

Douglas Karr is CMO van Maak INSIGTE oop en die stigter van die Martech Zone. Douglas het tientalle suksesvolle MarTech-opstartondernemings gehelp, het gehelp met die omsigtigheidsondersoek van meer as $5 miljard in Martech-verkrygings en -beleggings, en gaan voort om maatskappye te help met die implementering en outomatisering van hul verkoops- en bemarkingstrategieë. Douglas is 'n internasionaal erkende digitale transformasie en MarTech deskundige en spreker. Douglas is ook 'n gepubliseerde skrywer van 'n Dummie-gids en 'n besigheidsleierskapboek.

verwante Artikels

Terug na bo knoppie
Sluiting

Advertensieblok bespeur

Martech Zone is in staat om hierdie inhoud gratis aan u te verskaf, want ons verdien ons webwerf deur advertensie-inkomste, geaffilieerde skakels en borgskappe. Ons sal dit waardeer as jy jou advertensieblokkering sal verwyder terwyl jy ons webwerf bekyk.