PHP: Kasutage WordPressi API-d, et luua alamlehtede loendisse lühikood
Praegu töötame ettevõtte kliendi jaoks üsna keeruka rakenduse kallal. Saiti ehitatakse WordPressis, kuid sellel on palju kellasid ja vilesid. Sageli meeldib seda tüüpi tööd tehes salvestada kohandatud kood, et seda hiljem teistel saitidel uuesti kasutada. Sel juhul arvasin, et see on nii kasulik funktsioon, tahtsin seda maailmaga jagada. Me kasutame Avada WordPressi teema koos Fusion Page Builderiga vanematemaatikana ja juurutades meie lapseteemas üsna palju kohandatud koodi.
WordPressi API-s on juba paar funktsiooni, mida saab kasutada alamlehtede loendis, näiteks wp_list_pages ja get_pages. Probleem on selles, et nad ei tagasta piisavalt teavet, kui loodate dünaamiliselt luua loendi koos hulga teabega.
Selle kliendi jaoks soovisid nad postitada ametijuhendid ja lasta avatavate töökohtade loendi nende avaldamise kuupäevaks automaatselt kahanevas järjekorras luua. Nad tahtsid kuvada ka väljavõtte lehest.
Niisiis pidime kõigepealt lisama lehemallile väljavõtte toe. Nende teema funktsiooni.php lisasime:
add_post_type_support ('leht', 'väljavõte');
Seejärel pidime registreerima kohandatud lühikoodi, mis genereerib alamlehtede loendi, linke neile ja nende väljavõtte. Tehke seda, peame kasutama WordPress Loop. Funktsioonis.php lisasime:
// Funktsiooni Loend alamlehtede loendamine dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (massiiv ('ifempty' => 'No Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'leht', '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. = ' "; lõpupoole; } muu {$ string = ' '. $ atts [' ifempty '].' "; } wp_reset_postdata (); tagastage string string; } add_shortcode ('list_alamlehed', 'dknm_list_child_pages');
Nüüd saab lühikoodi rakendada kogu saidil, et näidata alamlehti koos lingi ja väljavõttega. Kasutamine:
[list_subpages aclass = "button" ifempty = "Vabandust, meil pole praegu ühtegi töökohta."] Töökohtade loetelu [/ list_subpages]
Tulemuseks on kena ja puhas tellimata loetelu avaldatud töökohtadest, mis on nende karjäärilehe all olevad lapslehed.
Kui ühtegi töökohta ei avaldatud (lapselehti pole), avaldab see:
Vabandust, meil pole praegu ühtegi töökohta.
Kui avaldati töid (lapslehed), avaldab see:
Tööde loetelu:
- Viimane lapse leht - väljavõte lapselehelt
- Järgmine lapse leht - väljavõte lapselehelt
- Järgmine lapse leht - väljavõte lapselehelt