views_(screen_id)
Позволяет изменить список доступных вариантов отображения таблицы.

В примере, что на скриншоте, через хук-фильтр проходят следующие данные:
Array ( [all] => <a href="edit.php?post_type=post&all_posts=1">Все <span class="count">(21)</span></a> [mine] => <a href="edit.php?post_type=post&author=3" class="current" aria-current="page">Мои <span class="count">(5)</span></a> [publish] => <a href="edit.php?post_status=publish&post_type=post">Опубликованные <span class="count">(15)</span></a> [sticky] => <a href="edit.php?post_type=post&show_sticky=1">Прилепленные <span class="count">(2)</span></a> [future] => <a href="edit.php?post_status=future&post_type=post">Запланированные <span class="count">(1)</span></a> [draft] => <a href="edit.php?post_status=draft&post_type=post">Черновики <span class="count">(3)</span></a> [pending] => <a href="edit.php?post_status=pending&post_type=post">На утверждении <span class="count">(2)</span></a> [trash] => <a href="edit.php?post_status=trash&post_type=post">Корзина <span class="count">(2)</span></a> )
Имя хука генерируется динамически на основании свойства $this->screen->id (уникальный ID экрана админки), значения screen_id смотрите здесь: get_current_screen().
Использование
add_filter( 'views_(screen_id)', 'wp_kama_views_screen_id_filter' ); /** * Function for `views_(screen_id)` filter-hook. * * @param string[] $views An array of available list table views. * * @return string[] */ function wp_kama_views_screen_id_filter( $views ){ // filter... return $views; }
- $views(массив)
- Список ссылок: вариантов отображения таблицы.
Примеры
#1 Удалим один элемент (sticky) из списка для таблицы постов
add_filter( 'views_edit-post', function( $array ){ unset( $array['sticky'] ); return $array; } );
#2 Удалим весь список действий для таблицы постов
add_filter( 'views_edit-post', '__return_empty_array' );
Список изменений
С версии 3.1.0 | Введена. |
Где вызывается хук
views_(screen_id)
views_(screen_id)
views_(screen_id)
wp-admin/includes/class-wp-list-table.php 521
$views = apply_filters( "views_{$this->screen->id}", $views );
wp-admin/includes/class-wp-media-list-table.php 301
$views = apply_filters( "views_{$this->screen->id}", array() );
wp-admin/includes/class-wp-plugin-install-list-table.php 340
$views = apply_filters( "views_{$this->screen->id}", $views );