Функция 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 в мультисайт-среде.