Хук views_{$this->screen->id}
в WordPress позволяет изменять набор ссылок, отображаемых над таблицей записей или других элементов в админке. Этот фильтр динамический и зависит от идентификатора экрана, в котором он используется. В данной статье разберем работу хука, его параметры и приведем примеры его использования.
apply_filters( “views_{$this->screen->id}”, string[] $views )
Хук views_(screen_id)
представляет собой динамический фильтр, где (screen_id)
— это идентификатор текущего экрана админки, который можно получить с помощью get_current_screen()
. Он позволяет кастомизировать набор ссылок, отображаемых над таблицей, таких как «Все», «Опубликованные», «Черновики» и другие. Эти ссылки помогают администраторам быстро фильтровать элементы в таблицах, например, посты, страницы или другие типы записей.
Параметры
- $views (массив строк) — массив ссылок для текущих представлений таблицы, каждая из которых представляет фильтр для отображения определённых элементов. Например, «Все», «Черновики», «Корзина».
Пример структуры данных, обрабатываемых через хук
В зависимости от контекста использования, массив $views
может содержать элементы с разными ссылками и метками. Пример массива, который может быть обработан этим фильтром:
Array
(
[all] => <a href="edit.php?post_type=page&all_pages=1">Все <span class="count">(42)</span></a>
[mine] => <a href="edit.php?post_type=page&author=1" class="current" aria-current="page">Мои <span class="count">(10)</span></a>
[publish] => <a href="edit.php?post_status=publish&post_type=page">Опубликованные <span class="count">(30)</span></a>
[draft] => <a href="edit.php?post_status=draft&post_type=page">Черновики <span class="count">(2)</span></a>
[pending] => <a href="edit.php?post_status=pending&post_type=page">На утверждении <span class="count">(0)</span></a>
[trash] => <a href="edit.php?post_status=trash&post_type=page">Корзина <span class="count">(5)</span></a>
)
Использование хука
Чтобы использовать хук views_(screen_id)
, добавьте его через функцию add_filter()
. Например:
add_filter( 'views_edit-page', 'customize_page_views' );
/**
* Кастомизация списка ссылок представлений для страницы.
*
* @param string[] $views Массив ссылок для представлений.
*
* @return string[]
*/
function customize_page_views( $views ) {
// Применяем изменения к массиву $views
return $views;
}
Пример 1: Удаление элемента «Черновики» для таблицы страниц
Если нужно убрать ссылку «Черновики» из списка фильтров для страниц, это можно сделать следующим образом:
add_filter( 'views_edit-page', function( $views ) {
unset( $views['draft'] );
return $views;
} );
Пример 2: Удаление всех ссылок фильтрации для таблицы страниц
Чтобы убрать все ссылки и оставить таблицу без каких-либо фильтров, используйте встроенную функцию __return_empty_array
, которая возвращает пустой массив:
add_filter( 'views_edit-page', '__return_empty_array' );
Пример 3: Добавление кастомного элемента для таблицы страниц
Допустим, необходимо добавить новый фильтр «Избранные» для страниц, которые имеют определённый мета-ключ. В таком случае можно вручную добавить ссылку в массив $views
:
add_filter( 'views_edit-page', function( $views ) {
$views['featured'] = '<a href="edit.php?post_type=page&meta_key=is_featured&meta_value=1">Избранные <span class="count">(3)</span></a>';
return $views;
} );
Заключение
Хук views_(screen_id)
— это мощный инструмент для настройки отображения таблиц в админке WordPress. С его помощью можно добавлять, изменять или убирать элементы фильтрации, делая админ-панель более удобной и подходящей для нужд пользователей.