PHP: Выкарыстоўвайце API WordPress для стварэння шорт-кода для пераліку падстаронак
Зараз мы працуем над даволі складанай рэалізацыяй для кліента прадпрыемства. Сайт ствараецца ў WordPress, але мае мноства наваротаў. Часта, калі я раблю гэты тып працы, мне падабаецца захоўваць уласны код для перапрафілявання пазней на іншых сайтах. У гэтым выпадку я думаў, што гэта такая карысная функцыя, я хацеў падзяліцца ёю з усім светам. Мы выкарыстоўваем Тэма Avada WordPress з Fusion Page Builder як бацькоўская тэма, і разгортванне даволі вялікай колькасці ўласнага кода ў нашай дзіцячай тэме.
WordPress ужо мае некалькі функцый у сваім API, якія можна выкарыстоўваць для пераліку падстаронак, такіх як wp_list_pages і get_pages. Праблема ў тым, што яны не вяртаюць дастатковую колькасць інфармацыі, калі вы спадзяецеся дынамічна стварыць спіс з вялікай колькасцю інфармацыі.
Для гэтага кліента яны хацелі размясціць апісанні вакансій і аўтаматычна ствараць спіс вакансій у парадку змяншэння да даты іх публікацыі. Яны таксама хацелі адлюстраваць фрагмент старонкі.
Такім чынам, спачатку мы павінны былі дадаць вытрымку ў шаблон старонкі. У functions.php для іх тэмы мы дадалі:
add_post_type_support ('старонка', 'урывак');
Тады нам трэба было зарэгістраваць уласны шорт-код, які генеруе спіс падстаронак, спасылкі на іх і фрагмент для іх. Зрабіце гэта, мы павінны выкарыстоўваць Пятля WordPress. У functions.php мы дадалі:
// Спіс падстаронак у функцыі спісу dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (масіў ('ifempty' => 'Няма запісаў', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'старонка', 'posts_per_page' => -1, 'post_parent' => $ post-> Ідэнтыфікатар, 'orderby' => 'публікаваць_дату', 'order' => 'DESC' ,); $ бацькоўскі = новы WP_Query ($ аргументаў); 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. = ' '; канчаткова; } яшчэ {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); вярнуць $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Цяпер шорт-код можа быць рэалізаваны на ўсім сайце, каб паказаць даччыныя старонкі са спасылкай і вытрымкай. Выкарыстанне:
[list_subpages aclass = "button" ifempty = "На жаль, у нас у цяперашні час няма вакансій."] Спіс вакансій [/ list_subpages]
У выніку атрымліваецца добры, чысты і неўпарадкаваны спіс апублікаваных заданняў, якія з'яўляюцца даччынымі старонкамі пад іх старонкай кар'еры.
Калі не было апублікаваных заданняў (няма даччыных старонак), ён будзе публікаваць:
На жаль, у цяперашні час у нас няма вакансій.
Калі былі апублікаваны вакансіі (даччыныя старонкі), ён будзе публікаваць:
Спіс вакансій:
- Апошняя дзіцячая старонка - Урывак са старонкі дзіцяці
- Наступная дзіцячая старонка - Урывак са старонкі дзіцяці
- Наступная дзіцячая старонка - Урывак са старонкі дзіцяці