Расширение экрана «Здоровье сайта» в 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

Источник: https://www.kobzarev.com/wordpress/extending-the-site-health-interface-in-wordpress-5-8/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: