PHP: Uporabite WordPress API za izdelavo kratke kode za seznam podstrani
Trenutno delamo na precej zapleteni izvedbi za odjemalca v podjetju. Spletno mesto je zgrajeno v WordPressu, vendar ima ogromno zvonov in piščal. Ko delam to vrsto dela, rad shranim kodo po meri za poznejšo preusmeritev na druga spletna mesta. V tem primeru sem mislil, da gre za tako uporabno funkcijo, hotel sem jo deliti s svetom. Uporabljamo Tema Avada WordPress z Fusion Page Builderjem kot nadrejeno temo in v našo podrejeno temo uvede kar nekaj kode po meri.
WordPress že ima v svojem API-ju nekaj funkcij, ki jih lahko uporabite za naštevanje podstrani, na primer wp_list_pages in get_pages. Težava je v tem, da ne vrnejo dovolj informacij, če upate, da boste dinamično ustvarili seznam s kopico informacij.
Za to stranko so želeli objaviti opise delovnih mest in omogočiti, da se seznam prostih delovnih mest samodejno generira v padajočem vrstnem redu do datuma njihove objave. Želeli so prikazati tudi odlomek strani.
Torej, najprej smo morali predlogi strani dodati izvleček. V funkcijo.php smo za njihovo temo dodali:
add_post_type_support ('stran', 'odlomek');
Nato smo morali registrirati kratko kodo po meri, ki bo ustvarila seznam podstrani, povezave do njih in izvleček zanje. Naredite to, mi moramo uporabiti WordPress zanka. V functions.php smo dodali:
// Seznam podstrani v funkciji seznama dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (matrika ('ifempty' => 'Ni zapisov', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'objavi_datum', 'order' => 'DESC' ,); $ nadrejeni = nov WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; medtem ko ($ nadrejeni-> imajo_poste ()): $ nadrejeni-> objavo (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; navsezadnje; } sicer {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); vrni $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Zdaj lahko ožji kodek implementirate na celotnem spletnem mestu, da prikažete podrejene strani s povezavo in izvlečkom. Uporaba:
[list_subpages aclass = "button" ifempty = "Oprostite, trenutno nimamo nobenih prostih delovnih mest."] Seznam delovnih mest [/ list_subpages]
Rezultat je lep, neurejen seznam objavljenih delovnih mest, ki so podrejene strani pod njihovo kariero.
Če ne bi bilo objavljenih nobenih opravil (podrejenih strani), bo objavil:
Trenutno nimamo nobenih prostih delovnih mest.
Če so bila objavljena delovna mesta (podrejene strani), bo objavil:
Seznam delovnih mest:
- Najnovejša otroška stran - odlomek iz otroške strani
- Naslednja podrejena stran - odlomek iz otroške strani
- Naslednja podrejena stran - odlomek iz otroške strani