PHP: Koristite WordPress API za izgradnju kratkog koda za popis podstranica

WordPress PHP

Trenutno radimo na prilično složenoj implementaciji za korporativnog klijenta. Web lokacija je izrađena u WordPressu, ali ima mnoštvo zvukova i zvižduka. Često kada radim ovu vrstu posla, volim spremiti prilagođeni kod za kasnije namjene na drugim web lokacijama. U ovom slučaju, mislio sam 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 i postavljanje prilično prilagođenog koda u našu podređenu temu.

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 gomilom informacija.

Za ovog kupca željeli su objaviti opise poslova i omogućiti da se lista radnih mjesta automatski generira u opadajućem redoslijedu do datuma objavljivanja. Takođe 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', 'izvod');

Zatim smo trebali registrirati prilagođeni kratki kod koji će generirati popis podstranica, veze do njih i izvod za njih. Uradite to, moramo koristiti WordPress Loop. U functions.php smo dodali:

// Listanje 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' => 'objavi_datum', 'order' => 'DESC' ,); $ nadređeni = 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 (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Sada se kratki kôd može implementirati na cijeloj web lokaciji da bi prikazao podređene stranice s vezom i izvatkom. Upotreba:

[list_subpages aclass = "button" ifempty = "Žao nam je, trenutno nemamo otvorenih radnih mjesta."] Spisak poslova [/ list_subpages]

Rezultat je lijep, čist neuređen popis objavljenih poslova, a to su podređene stranice ispod njihove stranice 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:

Lista poslova:

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.