PHP: Përdorni WordPress API për të ndërtuar një kod të shkurtër për të renditur nën-faqet
Tani po punojmë për një implementim mjaft kompleks për një klient të ndërmarrjes. Faqja është duke u ndërtuar në WordPress por ka një ton të kambanave dhe bilbilave. Shpesh, kur jam duke bërë këtë lloj pune, më pëlqen të ruaj kodin e personalizuar për rivendosjen më vonë në faqet e tjera. Në këtë rast, mendova se ishte një funksion aq i dobishëm, sa doja ta ndaja me botën. Ne jemi duke përdorur Tema Avada WordPress me Fusion Page Builder si një temë prindërore, dhe vendosjen e mjaft kodit personal në temën tonë të fëmijëve.
WordPress tashmë ka disa funksione në API-në e saj që mund të përdoren për të renditur nën-faqet, si wp_list_pages dhe get_pages. Problemi është se ata nuk kthejnë informacion të mjaftueshëm nëse shpresoni të krijoni dinamikisht një listë me një bandë informacioni.
Për këtë klient, ata donin të postonin përshkrime të vendeve të punës dhe të kishin listën e vendeve të punës që gjenerohen automatikisht në rend zbritës deri në datën e publikimit të tyre. Ata gjithashtu dëshironin të shfaqnin një fragment të faqes.
Pra, së pari, ne duhet të shtonim mbështetjen e fragmenteve në modelin e faqes. Në Funksionet.php për temën e tyre, shtuam:
add_post_type_support ('faqe', 'ekstrakt');
Pastaj, na duhej të regjistronim një kod të shkurtër të personalizuar që do të gjeneronte listën e nën-faqeve, lidhje me to dhe ekstraktin për to. Bëni këtë, ne duhet të përdorim WordPress Loop. Në Funksionet.php, shtuam:
// Lista e nënfaqeve në një funksion të listës dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (vargu ('ifempty' => 'Pa regjistrime', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'faqe', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publ_date', 'order' => 'DESC' ,); $ parent = WP_Query i ri ($ args); nëse ($ parent-> have_posts ()) {$ string. = $ përmbajtje. ' '; ndërsa ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '. Merrni titullin ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-'. Merrni_excerpt (); } vargu $. = ' '; ndërkohë; } tjetër {$ string = ' '. $ atts [' ifepty '].' '; } wp_reset_postdata (); kthe $ vargun; } add_shortcode ('lista_subpages', 'dknm_list_child_pages');
Tani, kodi i shkurtër mund të zbatohet në të gjithë sitin për t'i treguar faqet e fëmijëve me një lidhje dhe ekstrakt. Përdorimi:
[list_subpages aclass = "butoni" ifempty = "Na vjen keq, aktualisht nuk kemi ndonjë hapje pune."] Lista e Punëve [/ lista_nënsë]
Rezultati është një listë e pastër dhe e pastër e pa rregulluar e vendeve të botuara, të cilat janë faqe për fëmijë nën faqen e tyre të karrierës.
Nëse nuk do të kishte botuar punë (pa faqe për fëmijë), ajo do të publikojë:
Na vjen keq, aktualisht nuk kemi ndonjë hapje pune.
Nëse do të kishte punë të botuara (faqe për fëmijë), ajo do të publikojë:
Lista e Punëve:
- Faqja e Fundit e Fëmijëve - Fragment nga Faqja e Fëmijëve
- Faqja tjetër e fëmijës - Fragment nga Faqja e Fëmijëve
- Faqja tjetër e fëmijës - Fragment nga Faqja e Fëmijëve