PHP: naudokite „WordPress“ API, kad sukurtumėte trumpąjį kodą, kad pateiktumėte antrinius puslapius

„WordPress“ PHP

Šiuo metu dirbame prie gana sudėtingo įmonės kliento diegimo. Svetainė kuriama „WordPress“, tačiau joje yra daugybė varpų ir švilpukų. Dažnai, kai atlieku tokio tipo darbus, man patinka išsaugoti pasirinktinį kodą, kad vėliau būtų galima juos naudoti kitose svetainėse. Šiuo atveju maniau, kad tai tokia naudinga funkcija, norėjau ja pasidalinti su pasauliu. Mes naudojame „Avada WordPress“ tema su „Fusion Page Builder“ kaip pagrindinę temą ir įdėdami nemažai pasirinktinio kodo į savo vaiko temą.

„WordPress“ savo API jau turi keletą funkcijų, kurias galima naudoti pateikiant antrinius puslapius, pvz., Wp_list_pages ir get_pages. Problema ta, kad jie negrąžina pakankamai informacijos, jei tikitės dinamiškai sukurti sąrašą su daugybe informacijos.

Šiam klientui jie norėjo paskelbti darbo aprašymus ir leisti, kad darbo vietų sąrašas būtų automatiškai sudaromas mažėjančia tvarka iki jų paskelbimo datos. Jie taip pat norėjo parodyti puslapio ištrauką.

Taigi, pirmiausia turėjome pridėti ištraukų palaikymą prie puslapio šablono. Jų temoje funkcijos.php pridėjome:

add_post_type_support ('puslapis', 'ištrauka');

Tada turėjome užregistruoti pasirinktinį trumpąjį kodą, kuris sugeneruotų antrinių puslapių sąrašą, nuorodas į juos ir jų ištrauką. Atlikite tai, mes turime naudoti "WordPress" Ciklas. Funkcijoje.php pridėjome:

// Sąrašo funkcijos Puslapiai sąrašas dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (masyvas ('ifempty' => 'No Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = masyvas ('post_type' => 'puslapis', '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 (); } $ eilutė. = ' "; pabaigos; } dar {$ string = ' '. $ atts [' ifempty '].' "; } wp_reset_postdata (); grąžinti $ eilutę; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Dabar trumpąjį kodą galima įdiegti visoje svetainėje, kad būtų rodomi antriniai puslapiai su nuoroda ir ištrauka. Naudojimas:

[list_subpages aclass = "button" ifempty = "Atsiprašome, šiuo metu neturime darbo vietų."] Darbų sąrašas [/ list_subpages]

Rezultatas yra gražus, švarus nesutvarkytas paskelbtų darbų, kurie yra vaikų puslapiai po jų karjeros puslapiu, sąrašas.

Jei nebuvo paskelbta jokių darbo vietų (nebuvo vaikų puslapių), ji paskelbs:

Deja, šiuo metu neturime darbo.

Jei buvo paskelbta darbo vietų (vaikų puslapiai), ji paskelbs:

Darbų sąrašas:

Ką manote?

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.