Как добавить фильтр к wp-block-page-list?

Вопрос или проблема

Я читал, что старый виджет страниц позволял использовать фильтр для включения или исключения определенных страниц, но я не могу понять, как сделать это с новым виджетом списка страниц.

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

Ответ или решение

Чтобы добавить фильтр к блоку wp-block-page-list в WordPress и отобразить только определённые страницы в сайдбаре, вы можете воспользоваться хуками и фильтрами. Вот пошаговое руководство о том, как это сделать:

Шаг 1: Создание дочерней темы (если вы ещё этого не сделали)

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

  1. Создайте папку для дочерней темы в директории /wp-content/themes/.

  2. Создайте файл style.css, добавьте в него следующий код:

    /*
    Theme Name: Ваша дочерняя тема
    Template: имя_вашей_основной_темы
    */
  3. Создайте файл 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. Вы можете изменить массив, чтобы включить или исключить другие страницы в будущем.

Если у вас возникли какие-либо вопросы или нужна дополнительная помощь, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...