Conținut de marketing

PHP: Utilizați API-ul WordPress pentru a crea un scurtcod pentru a lista subpagini

Lucrăm acum la o implementare destul de complexă pentru un client de întreprindere. Site-ul este construit în WordPress, dar are o tonă de clopote și fluiere. Adesea, când fac acest tip de muncă, îmi place să salvez codul personalizat pentru a fi reutilizat ulterior pe alte site-uri. În acest caz, am crezut că este o funcție atât de utilă, că am vrut să o împărtășesc lumii. Folosim Tema Avada WordPress cu Fusion Page Builder ca temă părinte și implementarea unui cod personalizat în tema noastră copil.

WordPress are deja câteva funcții în API-ul său, care pot fi utilizate pentru a lista subpagini, cum ar fi wp_list_pages și get_pages. Problema este că nu returnează suficiente informații dacă sperați să creați dinamic o listă cu o grămadă de informații.

Pentru acest client, au dorit să posteze fișele posturilor și să genereze automat lista de locuri de muncă generate în ordine descrescătoare până la data publicării lor. De asemenea, au dorit să afișeze un extras al paginii.

Deci, mai întâi, a trebuit să adăugăm suport pentru extrase la șablonul de pagină. În functions.php pentru tema lor, am adăugat:

add_post_type_support ('pagina', 'extras');

Apoi, a trebuit să înregistrăm un shortcode personalizat care să genereze lista de subpagini, link-uri către acestea și extrasul pentru acestea. Faceți acest lucru, trebuie să folosim WordPress Loop. În functions.php, am adăugat:

// Listează Subpagini într-o funcție Listă dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Fără înregistrări', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'pagina', '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. = ' '; în cele din urmă; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); returnează $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Acum, shortcode-ul poate fi implementat pe tot site-ul pentru a afișa paginile copil cu un link și un extras. Utilizare:

[list_subpages aclass = "button" ifempty = "Ne pare rău, momentan nu avem nicio ofertă de locuri de muncă."] Lista locurilor de muncă [/ list_subpages]

Rezultatul este o listă frumoasă, curată și ordonată, a locurilor de muncă publicate, care sunt pagini copil sub pagina lor de carieră.

Dacă nu au fost publicate lucrări (fără pagini copil), acesta va publica:

Ne pare rău, momentan nu avem nicio ofertă de locuri de muncă.

Dacă au fost publicate joburi (pagini copil), acesta va publica:

Lista locurilor de muncă:

Douglas Karr

Douglas Karr este CMO al OpenINSIGHTS și fondatorul Martech Zone. Douglas a ajutat zeci de startup-uri de succes MarTech, a ajutat la due diligence de peste 5 miliarde de dolari în achiziții și investiții Martech și continuă să asiste companiile în implementarea și automatizarea strategiilor lor de vânzări și marketing. Douglas este un expert în transformare digitală recunoscut la nivel internațional și expert și vorbitor MarTech. Douglas este, de asemenea, un autor publicat al unui ghid pentru Dummie și al unei cărți de conducere în afaceri.

Articole pe aceeaşi temă

Înapoi la butonul de sus
Închide

Blocarea reclamelor a fost detectată

Martech Zone este în măsură să vă furnizeze acest conținut fără costuri, deoarece monetizăm site-ul nostru prin venituri din reclame, linkuri afiliate și sponsorizări. Am aprecia dacă ați elimina dispozitivul de blocare a reclamelor pe măsură ce vizualizați site-ul nostru.