display_site_states хук-фильтр . WP 5.3.0

Click here to view original web page at wp-kama.ru

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

Статус сайта сети в таблице сайтов в админке.

По умолчанию в 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', 'filter_function_name_9793', 10, 2 );
function filter_function_name_9793( $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;
}

Получим:

Доп. информация о сайтах сети.

Список изменений

Где вызывается хук

display_site_states

Где используется хук в ядре WordPress

Использование не найдено.