Верх страницы
Обложка к записи Расширение экрана «Здоровье сайта» в WordPress 5.8
Время для прочтения: 0 мин. 39 сек.

Расширение экрана «Здоровье сайта» в WordPress 5.8

В предстоящем релизе WordPress 5.8 запрос на расширение разработчиком экрана «Здоровье сайт» (Site Health), путём добавления вкладок со своим содержимым, выполнен (#47225).

Это позволит разработчикам добавлять свои собственные интерфейсы в область «Здоровье сайт» ядра WordPress, с сопутствующей навигацией по вкладкам в заголовке, или даже расширять любой другой из уже существующих интерфейсов.

Регистрация собственной вкладки

Для добавления своего интерфейса используйте новый фильтр site_health_navigation_tabs, который представляет собой ассоциативный массив, где ключи — ID вкладок, а значения — названия вкладок.

function mihdan_site_health_navigation_tabs( $tabs ) {
    // translators: Tab heading for Site Health navigation.
    $tabs['example-site-health-tab'] = esc_html_x( 'My New Tab', 'Site Health', 'text-domain' );
 
    return $tabs;
}
add_filter( 'site_health_navigation_tabs', 'mihdan_site_health_navigation_tabs' );

Код выше добавляет новую вкладку с идентификатором example-site-health-tab и названием My New Tab на страницу «Здоровье сайта».

Также с помощью этого фильтра можно изменить порядок отображения вкладок, или даже удалить одну из них. По умолчанию ядро имеет две вкладки: Состояние (Status) и Информация (Info). Экран Состояние является экраном по умолчанию и поэтому не имеет своего собственного слага.

Чтобы не перегружать область навигации, если добавлено более 4 элементов, только первые три будут отображаться напрямую, а остальные элементы будут помещены в поднавигацию. Это основано на тестировании плагина Health Check, где 4 пункта оказалось достаточно для большинства случаев использования, но не настолько много, чтобы запутаться.

Отображение или расширение интерфейса

Когда пользователь посещает вкладку «Здоровье сайта», отличную от экрана по умолчанию, срабатывает событие site_health_tab_content. Оно включает единственный аргумент — slug, определенный навигацией по вкладке в предыдущем фильтре, чтобы помочь вам понять, какая страница запрашивается.

Событие срабатывает после загрузки самого заголовка, но не включает в себя никаких оберток. Это дает разработчику полную ширину экрана (без учета меню администратора) для работы.

function mihdan_example_site_health_tab_content( $tab ) {
    // Do nothing if this is not our tab.
    if ( 'example-site-health-tab' !== $tab ) {
        return;
    }
 
    // Include the interface, kept in a separate file just to differentiate code from views.
    include trailingslashit( plugin_dir_path( __FILE__ ) ) . 'views/site-health-tab.php';
}
add_action( 'site_health_tab_content', 'mihdan_example_site_health_tab_content' );

Приведенный выше пример загружает файл с содержимым вкладки из вашего плагина, но только если вкладка совпадает с ключом (слагом), который был определен в предыдущем примере.

Таким образом, можно обеспечить вывод на любой вкладке, даже не вашей собственной, например, если они взаимодействуют друг с другом.

Одним из таких примеров может быть расширение стандартной вкладки Информация, которая имеет идентификатор debug, и добавление кнопки для копирования информации, специфичной только для вашего плагина или темы.

Источник: Extending the Site Health interface in WordPress 5.8

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, OpenCart, DLE, Laravel, Moonshine, Symfony, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

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

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы