Вопрос или проблема
Я читал, что старый виджет страниц позволял использовать фильтр для включения или исключения определенных страниц, но я не могу понять, как сделать это с новым виджетом списка страниц.
Я делаю это в боковой панели, и есть только определенные страницы, которые я хочу показать.
Ответ или решение
Чтобы добавить фильтр к блоку wp-block-page-list в WordPress и отобразить только определённые страницы в сайдбаре, вы можете воспользоваться хуками и фильтрами. Вот пошаговое руководство о том, как это сделать:
Шаг 1: Создание дочерней темы (если вы ещё этого не сделали)
Перед внесением изменений в код вашей темы, рекомендуется создать дочернюю тему. Это поможет избежать потери изменений при обновлении основной темы.
-
Создайте папку для дочерней темы в директории
/wp-content/themes/
. -
Создайте файл
style.css
, добавьте в него следующий код:/* Theme Name: Ваша дочерняя тема Template: имя_вашей_основной_темы */
-
Создайте файл
functions.php
. Этот файл будет содержать все настроенные фильтры и функции.
Шаг 2: Добавление фильтра в functions.php
Откройте файл functions.php
вашей дочерней темы и добавьте следующий код:
function custom_filter_page_list($args) {
// Укажите ID страниц, которые вы хотите включить в вывод
$allowed_pages = array(12, 34, 56); // Замените 12, 34, 56 на ID своих страниц
// Фильтруем аргументы запроса
$args['post__in'] = $allowed_pages; // Включаем только указанные страницы
$args['orderby'] = 'post__in'; // Порядок вывода по ID
return $args;
}
add_filter('wp_block_page_list_args', 'custom_filter_page_list');
Шаг 3: Убедитесь, что ваши страницы имеют правильные ID
ID страниц можно узнать в админке WordPress. Перейдите в «Страницы», наведите курсор на нужную страницу, и вы увидите ID в строке состояния браузера или в ссылке, когда редактируете страницу.
Шаг 4: Активируйте вашу дочернюю тему
Перейдите в админку WordPress, выберите «Внешний вид» > «Темы» и активируйте вашу новую дочернюю тему.
Заключение
Теперь, когда вы добавили этот код в файл functions.php
, блок wp-block-page-list в сайдбаре будет отображать только те страницы, ID которых вы указали в массиве $allowed_pages
. Вы можете изменить массив, чтобы включить или исключить другие страницы в будущем.
Если у вас возникли какие-либо вопросы или нужна дополнительная помощь, не стесняйтесь задавать их!