Функция is_main_site()
проверяет, является ли указанный сайт основным в мультисайтовой сети WordPress. Если сайт одиночный (мультисайт отключен), функция всегда возвращает true
, поскольку этот сайт единственный.
is_main_site( int $site_id = null, int $network_id = null ): bool
Параметры:
$site_id
(int, optional) — ID сайта для проверки. По умолчанию используется текущий сайт.$network_id
(int, optional) — ID сети для проверки. По умолчанию используется текущая сеть.
Возвращаемое значение:
true
, если$site_id
является основным сайтом сети или если мультисайт отключен.false
в остальных случаях.
Эта функция подходит для использования в мультисайтовой сети, где могут быть разные сайты, но только один основной сайт для каждой сети.
Пример 1. Вывод сообщения только на основном сайте сети
Этот код выводит уведомление только на основном сайте сети:
if ( is_main_site() ) {
echo 'Это основной сайт в сети!';
}
Пример 2. Разное поведение в зависимости от того, основной ли это сайт
С помощью is_main_site()
можно выполнять определенные действия только для основного сайта сети, например, управлять доступом к определенным настройкам:
add_action('admin_menu', function() {
if ( is_main_site() ) {
add_menu_page('Сетевые настройки', 'Настройки сети', 'manage_options', 'network-settings', 'network_settings_page');
}
});
Пример 3. Проверка основного сайта для конкретной сети
Если в WordPress установлено несколько сетей (мультинетворк), то можно задать конкретный network_id
для проверки:
$network_id = 2;
$site_id = 1;
if ( is_main_site($site_id, $network_id) ) {
echo 'Этот сайт является основным для сети с ID ' . $network_id;
}
Пример 4. Вывод различного содержимого на основном сайте и дочерних сайтах
В этом примере функция проверяет, является ли текущий сайт основным, и выводит различное содержимое в зависимости от результата:
if ( is_main_site() ) {
echo '<p>Добро пожаловать на главный сайт нашей сети!</p>';
} else {
echo '<p>Вы находитесь на дочернем сайте сети.</p>';
}
Заключение
Функция is_main_site()
— удобный инструмент для создания различного функционала и контента для основного сайта сети и дочерних сайтов.