Содержание маркетинга

PHP: используйте WordPress API для создания шорткода для вывода подстраниц

Сейчас мы работаем над довольно сложной реализацией для корпоративного клиента. Сайт создается на WordPress, но имеет массу наворотов. Часто, когда я занимаюсь этим типом работы, мне нравится сохранять пользовательский код для последующего использования на других сайтах. В данном случае я подумал, что это такая полезная функция, что хотел поделиться ею со всем миром. Мы используем Тема Avada WordPress с Fusion Page Builder в качестве родительской темы и развертывания небольшого количества настраиваемого кода в нашей дочерней теме.

WordPress уже имеет несколько функций в своем API, которые можно использовать для вывода списка подстраниц, например wp_list_pages и get_pages. Проблема в том, что они не возвращают достаточно информации, если вы надеетесь динамически создать список с большим количеством информации.

Для этого клиента они хотели публиковать описания вакансий и автоматически генерировать список вакансий в порядке убывания по дате публикации. Они также хотели показать отрывок со страницы.

Итак, сначала нам нужно было добавить поддержку отрывков в шаблон страницы. В functions.php их темы мы добавили:

add_post_type_support ('страница', 'выдержка');

Затем нам нужно было зарегистрировать собственный шорткод, который будет генерировать список подстраниц, ссылки на них и отрывки для них. Сделайте это, мы должны использовать WordPress Loop. В functions.php мы добавили:

// Список подстраниц в списке function dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Нет записей', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC'. ,); $ parent = новый WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; в то время как ($ parent-> have_posts ()): $ parent-> the_post (); $ строка. = ' '.get_the_title ().' '; если (has_excerpt ($ post-> ID)) {$ строка. = '-' .get_the_excerpt (); } $ string. = ' '; конец пока; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ('список_подстраниц', 'dknm_list_child_pages');

Теперь шорткод можно внедрить по всему сайту, чтобы показывать дочерние страницы со ссылкой и отрывком. Применение:

[list_subpages aclass = "button" ifempty = "К сожалению, в настоящее время у нас нет вакансий."] Список вакансий [/ list_subpages]

Результатом является красивый, чистый неупорядоченный список опубликованных вакансий, которые являются дочерними страницами под их страницей карьеры.

Если не было опубликовано вакансий (нет дочерних страниц), он опубликует:

Извините, в настоящее время у нас нет вакансий.

Если были опубликованы вакансии (дочерние страницы), он опубликует:

Список вакансий:

Douglas Karr

Douglas Karr является директором по маркетингу OpenINSIGHTS и основатель компании Martech Zone. Дуглас помог десяткам успешных стартапов MarTech, помог в комплексной проверке приобретений и инвестиций Martech на сумму более 5 миллиардов долларов, а также продолжает помогать компаниям во внедрении и автоматизации их стратегий продаж и маркетинга. Дуглас — международно признанный эксперт по цифровой трансформации, а также эксперт в области MarTech и спикер. Дуглас также является автором опубликованного руководства для чайников и книги по бизнес-лидерству.

Статьи по теме

Вернуться к началу кнопки
Закрыть

Adblock обнаружен

Martech Zone может предоставить вам этот контент бесплатно, потому что мы монетизируем наш сайт за счет доходов от рекламы, партнерских ссылок и спонсорства. Мы были бы признательны, если бы вы удалили блокировщик рекламы при просмотре нашего сайта.