Меняем текст (и не только) результата теста в «Здоровье сайта»

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Версия WordPress 5.3 подъехала к нам с новым фильтр хуком для функционала Здоровье сайта – site_status_test_result. Этот фильтр позволяет полностью изменить результат конкретного теста – текст, лейбл, цвет лейбла, приоритетность… короче давайте я покажу вам всё на примере!

Предположим, что на моём сайте тест выдаёт такое рекомендуемое улучшение:

А что, если мы допилим туда ещё одно условие? Если вдруг количество установленных плагинов больше 50, то добавим туда сообщение, окей?

Что-то подобное мы сделали тут, когда писали свой собственный тест, однако в этот раз мы докинем эту инфу в уже существующее сообщение.

add_filter( 'site_status_test_result', function( $site_health_check ) {
 
	// $site_health_check - массив параметров теста, который мы можем полностью поменять
	// первым делом мы проверям, для какого теста сейчас срабатывает хук!
	if ( 'plugin_version' !== $site_health_check['test'] ) {
		return $site_health_check;
	}
 
	// количество установленных активных плагинов
	$number_of_plugins = count( get_option('active_plugins') );
 
	if( 50 < $number_of_plugins ) {
 
		if ( 'good' === $site_health_check['status'] ) {
			$site_health_check['label'] = 'У вас слишком много плагинов на сайте';
			$site_health_check['badge']['label'] = 'Производительность';
			$site_health_check['badge']['label'] = 'orange';
		} else {
			$site_health_check['label'] .= ', а ещё многовато активных плагинов';
		}
 
		// впишем что-то в описание, именно допишем
		$site_health_check['description'] .= '<p>На вашем сайте более 50 активных плагинов, пожалуйста старайтесь не увлекаться с их количеством, это может повлиять на производительность сайта.</p>';
 
		// если вообще с этим тестом всё ок, то экшены у нас будут пусты
		if ( 'good' === $site_health_check['status'] ) {
			$site_health_check['actions'] = '<a href="' . admin_url('plugins.php') . '">Управление плагинами</a>';
		}
 
		// ну и меняем статус теста на не гуд
		$site_health_check['status'] = 'recommended'; // или critical, если очень важно
 
	}
 
	return $site_health_check;
});

Какой-то не самый красивый пример получился 😁, давайте разберём, как оно работает.

Короче много текста, вот результат:

Смотрите также

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии