PHP: Koristite WordPress API za izgradnju kratkog koda za popis podstranica
Trenutno radimo na prilično složenoj implementaciji za korporativnog klijenta. Web mjesto se izrađuje u WordPressu, ali ima mnoštvo zvukova i zvižduka. Često kad radim ovu vrstu posla, volim spremiti prilagođeni kod za naknadnu namjenu na drugim web mjestima. U ovom sam slučaju mislio da je to tako korisna funkcija, htio sam je podijeliti sa svijetom. Koristimo Tema Avada WordPress s Fusion Page Builder-om kao nadređenu temu, a u našu podređenu temu ugrađuje prilično prilagođenog koda.
WordPress već ima nekoliko funkcija u svom API-ju koje se mogu koristiti za popis podstranica, poput wp_list_pages i get_pages. Problem je u tome što ne vraćaju dovoljno podataka ako se nadate da ćete dinamički stvoriti popis s hrpom informacija.
Za ovog kupca željeli su objaviti opise poslova i neka se popis radnih mjesta automatski generira u opadajućem redoslijedu do datuma objavljivanja. Također su željeli prikazati odlomak stranice.
Dakle, prvo smo morali dodati izvod za podršku predlošku stranice. U functions.php za njihovu temu dodali smo:
add_post_type_support ('stranica', 'izvadak');
Zatim smo trebali registrirati prilagođeni kratki kôd koji će generirati popis podstranica, veze do njih i izvadak za njih. Učini to, moramo koristiti Petlja za WordPress. U functions.php dodali smo:
// Popis podstranica u funkciji popisa dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (niz ('ifempty' => 'Nema zapisa', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'objaviti_datum', 'order' => 'DESC' ,); $ roditelj = novi 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. = ' '; na kraju; } ostalo {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); vrati $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Sada se kratki kôd može implementirati na cijelom web mjestu kako bi se podređene stranice prikazale s vezom i izvatkom. Upotreba:
[list_subpages aclass = "button" ifempty = "Nažalost, trenutno nemamo otvorenih radnih mjesta."] Popis poslova [/ list_subpages]
Rezultat je lijep, čist i neuređen popis objavljenih poslova, a to su podređene stranice ispod stranice njihove karijere.
Ako nije bilo objavljenih poslova (nema podređenih stranica), objavit će:
Nažalost, trenutno nemamo otvorenih radnih mjesta.
Ako su objavljeni poslovi (podređene stranice), objavit će:
Popis poslova:
- Najnovija podređena stranica - Izvod iz stranice Child
- Sljedeća podređena stranica - Izvod iz stranice Child
- Sljedeća podređena stranica - Izvod iz stranice Child