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 673
$site_states = apply_filters( 'display_site_states', $site_states, $_site );