PHP: Користете го API-то на WordPress за да изградите краток код за да наведете под-страници
Работиме на доста комплексна имплементација за клиент на претпријатието во моментов. Веб-страницата се гради во WordPress, но има многу ellsвона и свирежи. Честопати, кога работам ваков вид на работа, сакам да го зачувам прилагодениот код за пренаменување подоцна на други страници. Во овој случај, мислев дека е толку корисна функција, сакав да ја споделам со светот. Ние го користиме Авада WordPress тема со Fusion Page Builder како родителска тема и распоредување на прилагоден код во нашата детска тема.
WordPress веќе има неколку функции во својот API што може да се искористи за список на под-страници, како што се wp_list_pages и get_pages. Проблемот е во тоа што тие не враќаат доволно информации ако се надевате дека динамично ќе креирате список со еден куп информации.
За овој клиент, тие сакаа да објават описи на работни места и списокот со отворени работни места автоматски да се генерираат по опаѓачки редослед до нивниот датум на објавување. Тие исто така сакаа да прикажат извадок од страницата.
Значи, прво, моравме да додадеме поддршка за извадок во образецот на страницата. Во функциите.php за нивната тема, додадовме:
add_post_type_support ('страница', 'извадок');
Потоа, требаше да регистрираме сопствен краток код што ќе генерира список на под-страници, врски до нив и извадок за нив. Направете го ова, ние треба да го користиме Јамка на WordPress. Во функциите.php, додадовме:
// Под-страници со списоци во функцијата Листа dknm_list_child_pages ($ atts, $ content = "") {глобален $ пост; $ atts = shortcode_atts (низа ('ifempty' => 'Нема записи', 'aclass' => ''), $ atts, 'list_subpages'); $ args = низа ('post_type' => 'страница', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publ_date', 'order' => 'DESC' ,); $ родител = нов WP_Query ($ args); ако ($ parent-> have_posts ()) {$ string. = $ содржина. ' '; додека ($ parent-> have_posts ()): $ parent-> the_post (); $ низа. = ' '. земи го титлот ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } низа $. = ' '; во меѓувреме; } друго {$ string = ' ". $ atts [" ако бесмислено "]." '; } wp_reset_postdata (); врати низа $; } add_shortcode ('list_sppages', 'dknm_list_child_pages');
Сега, краткиот код може да се спроведе низ целата веб-страница за да им се прикажат на децата страници со линк и извадок. Употреба:
[list_subpages aclass = "копче" ifempty = "Извинете, во моментов немаме отворени работни места."] Список на работни места [/ list_sppages]
Резултатот е убав, чист нереден список на објавени работни места, кои се детски страници под нивната страница за кариера.
Доколку нема објавено работни места (нема страници за деца), ќе објави:
Извинете, во моментов немаме отворени работни места.
Доколку имало објавено работни места (страници за деца), тоа ќе објави:
Список на работни места:
- Најнова страница за деца - Извадок од Детската страница
- Следна страница на детето - Извадок од Детската страница
- Следна страница на детето - Извадок од Детската страница