Виникла необхідність вирішити цікаву задачу, але готового рішення не знайшов.
Дано: сторінки в WordPress з декількома рівнями укладення.
Потрібно: при заході на головну сторінку «Паркани» вивести список певних дочірніх сторінок з першим рівнем вкладеності, включаючи приховані сторінки.
Для виключення певних сторінок з меню я використовував плагін Exclude Pages.
Спочатку меню виглядало ось так:
Ось ці чотири нижніх пункту в меню нам знадобляться для виведення їх на сторінці «Паркани», яка є батьківської. Їх ми і приховуємо плагіном.
Для вирішення цього завдання я написав невеликий код, який створює новий шорткод [pages], який необхідно підключити в файл functions.php вашої теми.
Приклади використання шорткода
Вибирайте будь-який із запропонованих нижче прикладів, вставляйте в текст вашої сторінки і тестируйте. Майте на увазі, що всі перераховані параметри можна використовувати як окремо, так і разом.
Приклад 1: Виводимо зазначені сторінки по ID.
У параметр include передаються ID тих сторінок, які нам потрібно відобразити.
Якщо параметр не вказано, то виводяться всі сторінки, які є дочірніми до активної.
Приклад 2: Теж саме, але з присвоєним стилем CSS для контейнера
Параметр css_class задає стиль CSS, який буде підключений до тегу UL для виведення маркованого списку. За замовчуванням використовується клас subpages, можете задавати стилі списку і через нього, в тому числі.
Класу red я заздалегідь поставив таке стиль, в вашому випадку все буде інакше :-)
Приклад 3: Висновок дочірніх записів іншої сторінки.
Параметр parent дозволяє виводити на одній сторінці список іншої сторінки з дочірніми пунктами. У ньому потрібно вказати ID потрібної нам сторінки.
Приклад 4: Висновок батьківської сторінки
Параметр show_parent зі значенням «1» дозволяє виводити першої в цьому меню батьківську сторінку, зазначену в parent. Це може бути зручним в деяких випадках.
В даному випадку на сторінці «Вартість» відбувається додавання першим пунктом батьківської сторінки «Гаражні ворота». Плюс в тому, що цю конструкцію можна використовувати не тільки на сторінках, а й в записах.
висновок
На цьому все, завдання вирішена і можна сміливо використовувати код в інших проектах :-)