Функция is_network_admin()
в WordPress проверяет, находится ли текущий запрос на странице администрирования сети сайтов (например, /wp-admin/network/
). Эта функция часто используется в многосайтовой сети (WordPress Multisite) для определения, находится ли пользователь в административной панели управления сетью, что помогает корректно настроить интерфейс и функционал для конкретного контекста.
is_network_admin(): bool
Обратите внимание:
- Функция не проверяет, является ли пользователь администратором. Для этого используйте
current_user_can()
. - Также она не проверяет, включена ли сеть (Multisite). Чтобы убедиться, что активирован режим сети, используйте
is_multisite()
.
Пример 1: Проверка и отображение сообщения для страниц управления сетью
Следующий пример кода проверяет, находится ли пользователь на странице администрирования сети, и выводит сообщение в зависимости от результата проверки.
if ( is_network_admin() ) {
echo __( 'You are viewing a WordPress network administration page', 'textdomain' );
} else {
echo __( 'You are not viewing a WordPress network administration page', 'textdomain' );
}
Этот код полезен для информирования пользователя о его текущем положении в админке, а также для добавления интерфейсных элементов, которые отображаются только на страницах сети.
Пример 2: Добавление виджета в консоль только для сети
В данном примере мы добавляем виджет «Текущее состояние сети» в панель администрирования, если пользователь находится в разделе управления сетью. Виджет будет отображаться только в этом разделе и не появится в административной панели конкретного сайта.
if ( is_network_admin() ) {
wp_add_dashboard_widget(
'network_dashboard_status',
__( 'Network Status', 'textdomain' ),
'custom_network_dashboard_status'
);
}
function custom_network_dashboard_status() {
echo __( 'This is a custom widget displaying network status information.', 'textdomain' );
}
Здесь wp_add_dashboard_widget()
используется только для страниц администрирования сети, чтобы не загружать лишние элементы на других страницах.
Пример 3: Условная загрузка стилей и скриптов в админке сети
Используя is_network_admin()
, можно ограничить загрузку стилей и скриптов только для раздела управления сетью, чтобы они не загружались в админке отдельных сайтов.
function enqueue_network_admin_scripts() {
if ( is_network_admin() ) {
wp_enqueue_style( 'network-admin-style', get_template_directory_uri() . '/css/network-admin-style.css' );
wp_enqueue_script( 'network-admin-script', get_template_directory_uri() . '/js/network-admin-script.js' );
}
}
add_action( 'admin_enqueue_scripts', 'enqueue_network_admin_scripts' );
В этом примере стили и скрипты для интерфейса загружаются только в админке сети, что помогает улучшить производительность, избегая лишних загрузок на других страницах.
Заключение
Функция is_network_admin()
позволяет настраивать административный интерфейс с учетом контекста и применима только к административной панели сети в многосайтовом WordPress. Она удобна для добавления виджетов, загрузки уникальных стилей и других настроек, которые должны быть доступны исключительно в административной части сети.