PHP: Використовуйте API WordPress для створення короткого коду для переліку підсторінок

WordPress PHP

Зараз ми працюємо над досить складною реалізацією для корпоративного клієнта. Сайт розробляється в 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-> ID, 'orderby' => 'публікація_дати', 'order' => 'DESC' ,); $ батьківський = новий WP_Query ($ аргументів); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ рядок. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ рядок. = ' '; тимчасовий; } ще {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); повернути рядок $; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Тепер шорт-код можна впровадити на всьому сайті, щоб показати дочірні сторінки із посиланням та фрагментом. Використання:

[list_subpages aclass = "button" ifempty = "На жаль, у нас наразі немає жодної вакансії."] Список вакансій [/ list_subpages]

Результат - приємний, чистий невпорядкований список опублікованих вакансій, які є дочірніми сторінками під їх сторінкою кар’єри.

Якщо не було опубліковано жодного завдання (немає дочірніх сторінок), він опублікує:

На жаль, наразі у нас немає жодної вакансії.

Якщо були опубліковані завдання (дочірні сторінки), він опублікує:

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

Що ви думаєте?

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.