Функция get_blog_option()
предназначена для получения значения указанной опции в блоге (сайте) с определенным ID в мультисайт-установке WordPress. Она позволяет считывать настройки на уровне отдельного сайта в сети. Если опция не существует или у нее нет значения, функция возвращает значение по умолчанию, указанное в третьем параметре, или false
.
Важно: Если текущая установка не мультисайт, рекомендуется использовать
get_option()
вместоget_blog_option()
, так какget_blog_option()
работает только при активной мультисайт-конфигурации.
get_blog_option( int $id, string $option, mixed $default_value = false ): mixed
Параметры функции
$id
(int): ID блога, для которого нужно получить опцию. Если указанnull
, будет использован ID текущего блога.$option
(string): Название опции, значение которой требуется получить.$default_value
(mixed): Значение, возвращаемое, если опция не существует. По умолчанию —false
.
Возвращаемое значение
- mixed: Возвращает значение опции, если оно существует, или значение по умолчанию, если опция не была найдена.
Пример 1: Получение email администратора для блога с ID 3
Допустим, требуется получить email администратора для блога с ID 3
. Если настройка отсутствует, будет возвращено значение по умолчанию '[email protected]'
.
$admin_email = get_blog_option( 3, 'admin_email', '[email protected]' );
Пример 2: Получение лимита загрузки файлов
Для блога с ID 5
требуется узнать ограничение на размер загружаемых файлов в мегабайтах. Если опция отсутствует, возвращаем значение 100
.
$upload_limit = get_blog_option( 5, 'blog_upload_space', 100 );
Пример 3: Проверка разрешения на регистрацию пользователей
Получим опцию registration
для блога с ID 7
, чтобы проверить, открыта ли регистрация для пользователей. Если параметр отсутствует, возвращаем значение 'closed'
.
$registration_status = get_blog_option( 7, 'registration', 'closed' );
Пример 4: Получение URL главной страницы
Для блога с ID 8
получим URL его главной страницы. Если значение отсутствует, возвращаем значение по умолчанию 'http://example.com'
.
$homepage_url = get_blog_option( 8, 'siteurl', 'http://example.com' );
Пример 5: Проверка активного плагина на уровне сайта
Получим список активных плагинов для блога с ID 4
, чтобы проверить, активен ли определенный плагин.
$active_plugins = get_blog_option( 4, 'active_plugins', [] );
if (in_array('my-plugin/my-plugin.php', $active_plugins)) {
echo "Плагин 'my-plugin' активен на сайте с ID 4.";
}
Примечания
- Функция
get_blog_option()
удобна для случаев, когда настройки зависят от отдельного блога, а не всей сети. - Существует фильтр
blog_option_$option
, который может быть использован для изменения возвращаемого значения опции. Он получает параметры$value
и$blog_id
, где$value
— значение опции, а$blog_id
— ID блога. - Важно проверять, что мультисайт-конфигурация включена, перед вызовом
get_blog_option()
. Это можно сделать с помощьюis_multisite()
илиfunction_exists('get_blog_option')
.
Заключение
Функция get_blog_option()
— это мощный инструмент для работы с настройками отдельных сайтов в мультисайт-установке WordPress. Она позволяет эффективно управлять настройками сайтов и получать доступ к данным по их ID, что особенно полезно при создании плагинов и расширении функциональности WordPress в мультисайт-среде.