PHP: Uzu la WordPress-API por Konstrui Mallongan Kodon por Listigi Subpaĝojn

WordPress PHP

Ni laboras pri sufiĉe komplika efektivigo por entreprena kliento nun. La retejo estas enkonstruita en WordPress sed havas multe da sonoriloj kaj fajfiloj. Ofte, kiam mi faras tiaspecan laboron, mi ŝatas konservi la kutiman kodon por reaperigi poste sur aliaj retejoj. Ĉi-kaze mi pensis, ke ĝi estas tiel utila funkcio, ke mi volis dividi ĝin kun la mondo. Ni uzas la Avada WordPress-temo kun Fusion Page Builder kiel gepatra temo, kaj deplojante sufiĉe da kutima kodo en nia infana temo.

WordPress jam havas kelkajn funkciojn en sia API uzeblaj por listigi subpaĝojn, kiel wp_list_pages kaj get_pages. La problemo estas, ke ili ne redonas sufiĉe da informoj, se vi esperas krei dinamike liston kun amaso da informoj.

Por ĉi tiu kliento, ili volis afiŝi laborpriskribojn kaj la liston de laborpostenoj aŭtomate generiĝas laŭ descenda sinsekvo laŭ sia eldona dato. Ili ankaŭ volis montri eltiraĵon de la paĝo.

Do, unue, ni devis aldoni eltiraĵan subtenon al la paĝa ŝablono. En functions.php por ilia temo, ni aldonis:

add_post_type_support ('paĝo', 'ekstrakto');

Tiam ni bezonis registri laŭmendan mallongan kodon, kiu generus la liston de subpaĝoj, ligojn al ili kaj la eltiraĵon por ili. Faru tion, ni devas uzi la WordPress-Buklo. En functions.php, ni aldonis:

// Listigi Subpaĝojn en Listfunkcio dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Neniuj Rekordoj', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'paĝo', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'eldoni_daton', 'order' => 'DESC' ,); $ patro = nova WP_Demando ($ args); if ($ patro-> havas_postojn ()) {$ ĉeno. = $ enhavo. ' '; while ($ patro-> havas_postojn ()): $ patro-> la_poŝto (); $ ĉeno. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; dume; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); redonu $ ĉenon; } aldoni_mallongan kodon ('listo_subpaĝoj', 'dknm_list_child_pages');

Nun la mallonga kodo povas esti efektivigita tra la retejo por montri la infanajn paĝojn kun ligo kaj ekstrakto. Uzado:

[list_subpages aclass = "butono" ifempty = "Pardonu, ni nuntempe ne havas laborpostenojn."] Listo de Laborpostenoj [/ list_subpages]

La rezulto estas bela, pura neordigita listo de la publikigitaj laborpostenoj, kiuj estas infanaj paĝoj sub sia kariera paĝo.

Se ne estis publikigitaj laborpostenoj (neniuj infanaj paĝoj), ĝi publikigos:

Pardonu, ni nuntempe ne havas laborpostenojn.

Se estis publikigitaj laborpostenoj (infanaj paĝoj), ĝi publikigos:

Listo de Laborpostenoj:

Kion vi pensas?

Ĉi tiu retejo uzas Akismeton por redukti spamon. Lernu, kiel via komento datiĝas.