display_site_states
Позволяет изменить строку статуса сайта, которая показывается в таблице списка сайтов в админке мультисайта.

По умолчанию в WordPress предусмотрен следующий список статусов:
// для главного сайта сети $site_states['main'] = __( 'Main' ); // для подсайтов сети array( 'archived' => array( 'site-archived', __( 'Archived' ) ), 'spam' => array( 'site-spammed', _x( 'Spam', 'site' ) ), 'deleted' => array( 'site-deleted', __( 'Deleted' ) ), 'mature' => array( 'site-mature', __( 'Mature' ) ), );
Этот фильтр позволяет добавить свои статусы или просто информацию о сайте, которую вы бы хотели видеть рядом с названием сайта в таблице сайтов в админке мультисайта.
Использование
add_filter( 'display_site_states', 'wp_kama_display_site_states_filter', 10, 2 );
/**
* Function for `display_site_states` filter-hook.
*
* @param string[] $site_states An array of site states.
* @param WP_Site $site The current site object.
*
* @return string[]
*/
function wp_kama_display_site_states_filter( $site_states, $site ){
// filter...
return $site_states;
}
- $site_states(массив)
- Массив строк (статусов сайта).
По умолчанию: 'Main', 'Archived', 'Mature', 'Spam', 'Deleted' - $site(WP_Site)
- Объект текущего сайта.
Примеры
#1 Добавим свою инфу о сайте
Это нестандартное использование хука, потому что в теории на этом месте должны выводится статусы сайта, которые нужно добавлять и обрабатывать отдельно.
Мы в качестве примера добавим туда просто полезную информацию для админов. Допустим нам часто нужно знать ID сайта сети и какая тема у него используется.
add_filter( 'display_site_states', 'add_sites_status_string', 10, 2 );
// Добавим название тем в информационную строку статуса темы.
function add_sites_status_string( $site_states, $site ){
switch_to_blog( $site->blog_id );
$site_states['them'] = get_stylesheet(); // название темы
$site_states['id'] = $site->blog_id; // ID сайта
restore_current_blog();
return $site_states;
}
Получим:

Список изменений
| С версии 5.3.0 | Введена. |
Где вызывается хук
display_site_states
wp-admin/includes/class-wp-ms-sites-list-table.php 696
$site_states = apply_filters( 'display_site_states', $site_states, $_site );