PHP: Izmantojiet WordPress API, lai izveidotu īso kodu apakšlapu sarakstam

WordPress PHP

Mēs šobrīd strādājam pie diezgan sarežģīta uzņēmuma klienta ieviešanas. Vietne tiek veidota programmā WordPress, taču tajā ir daudz zvanu un svilpu. Bieži vien, veicot šāda veida darbu, man patīk saglabāt pielāgoto kodu, lai vēlāk tos izmantotu citās vietnēs. Šajā gadījumā es domāju, ka tā ir tik noderīga funkcija, es gribēju to dalīties ar pasauli. Mēs izmantojam Avada WordPress tēma ar Fusion Page Builder kā vecāku tēmu un mūsu bērnu tēmā ievietojot diezgan daudz pielāgota koda.

Programmas WordPress API jau ir pāris funkcijas, kuras var izmantot apakšlapu, piemēram, wp_list_pages un get_pages, sarakstam. Problēma ir tā, ka viņi neatgriež pietiekami daudz informācijas, ja jūs cerat dinamiski izveidot sarakstu ar virkni informācijas.

Šim klientam viņi vēlējās publicēt amata aprakstus un pieprasīt, lai līdz viņu publicēšanas datumam automātiski tiktu izveidots darba vietu saraksts dilstošā secībā. Viņi arī vēlējās parādīt lapas fragmentu.

Tātad, vispirms mums bija jāpievieno izvilkuma atbalsts lapas veidnei. Savā motīvā functions.php mēs pievienojām:

add_post_type_support ('lapa', 'fragments');

Tad mums bija jāreģistrē pielāgots īss kods, kas ģenerētu apakšlapu sarakstu, saites uz tām un to fragmentu. Dariet to, mums ir jāizmanto WordPress Loop. Vietnē functions.php mēs pievienojām:

// Saraksta apakšlapu saraksta funkcija dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (masīvs ('ifempty' => 'Nav ierakstu', 'aclass' => ''), $ atts, 'list_subpages'); $ args = masīvs ('post_type' => 'lapa', '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 (); $ virkne. = ' '.get_the_title ().' "; if (has_excerpt ($ post-> ID)) {$ virkne. = '-' .get_the_excerpt (); } $ virkne. = ' "; beigas; } cits {$ string = ' '. $ atts [' ifempty '].' "; } wp_reset_postdata (); atgriezt $ virkni; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Tagad īso kodu var ieviest visā vietnē, lai parādītu bērnu lapas ar saiti un fragmentu. Lietošana:

[list_subpages aclass = "button" ifempty = "Atvainojiet, mums pašlaik nav neviena darba piedāvājuma."] Darbu saraksts [/ list_subpages]

Rezultāts ir jauks, tīrs nesakārtots publicēto darbu saraksts, kas ir bērnu lapas zem viņu karjeras lapas.

Ja netika publicēts neviens darbs (nav bērnu lapu), tas publicēs:

Diemžēl pašlaik mums nav neviena darba piedāvājuma.

Ja būtu publicēti darbi (bērnu lapas), tas publicēs:

Darbu saraksts:

Ko jūs domājat?

Šī vietne izmanto Akismet, lai samazinātu surogātpastu. Uzziniet, kā tiek apstrādāts jūsu komentārs.