Функция get_site_option()
используется в мультисайтовой установке WordPress для получения значений опций, относящихся ко всей сети сайтов. Если функция вызывается не в мультисайте, она просто обращается к get_option()
и возвращает значение из глобальных настроек.
get_site_option( string $option, mixed $default_value = false, bool $deprecated = true ): mixed
get_site_option()
позволяет получать настройки и параметры, специфичные для всей сети, например, email администратора сети, допустимые типы файлов для загрузки и др. Данные извлекаются из таблицы wp_sitemeta
, используемой для хранения информации о сети.
Важно: Функция работает как обертка для
get_network_option()
и, таким образом, разделяет с ней многие параметры и принципы работы.
Параметры функции
$option
(string): Название опции, значение которой требуется получить. Название не должно быть SQL-экранировано.$default_value
(mixed, optional): Значение, возвращаемое, если указанной опции не существует. По умолчанию —false
.$deprecated
(bool, optional): Параметр, отвечающий за использование кэша (устарел с версии 4.4.0).
Возвращаемое значение
- mixed: Значение опции, если оно существует, или значение по умолчанию, если опция отсутствует.
Пример 1: Получение email администратора сети
Допустим, требуется узнать email администратора сети. Если эта опция отсутствует, по умолчанию будет возвращен email [email protected]
.
$admin_email = get_site_option( 'admin_email', '[email protected]' );
Пример 2: Получение названия сети сайтов
Чтобы получить название сети, используем следующую команду. Если опция site_name
не найдена, будет возвращено значение 'Моя сеть'
.
$network_name = get_site_option( 'site_name', 'Моя сеть' );
Пример 3: Проверка возможности регистрации пользователей
Если нужно выяснить, разрешена ли регистрация пользователей на уровне сети, мы можем использовать get_site_option()
для получения значения опции registration
.
$registration_status = get_site_option( 'registration', 'disabled' );
if ( $registration_status === 'enabled' ) {
echo "Регистрация разрешена на уровне сети.";
} else {
echo "Регистрация отключена.";
}
Пример 4: Ограничение по размерам файлов
Опция fileupload_maxk
позволяет задать максимальный размер загружаемых файлов. Получим это значение, указав лимит 1000 КБ
по умолчанию.
$file_upload_limit = get_site_option( 'fileupload_maxk', 1000 );
Пример 5: Получение списка разрешенных тем для сайтов сети
Если требуется узнать, какие темы разрешены в сети, можно воспользоваться командой ниже.
$allowed_themes = get_site_option( 'allowedthemes', [] );
if ( !empty($allowed_themes) ) {
echo "Разрешенные темы: " . implode(', ', array_keys($allowed_themes));
} else {
echo "В сети нет разрешенных тем.";
}
Дополнительная информация
get_site_option()
используется для глобальных настроек сети и не затрагивает опции конкретных блогов. Для блогов предпочтительно использовать функциюget_blog_option()
.- Если мультисайт не включен,
get_site_option()
фактически становится синонимомget_option()
и извлекает значения из таблицыwp_options
. - Параметр
$deprecated
с версии WordPress 4.4 больше не рекомендуется к использованию и оставлен исключительно для обратной совместимости.
Таблица некоторых опций сети
Название опции | Пример значения |
---|---|
site_name | Мультисайт |
admin_email | [email protected] |
admin_user_id | 1 |
registration | открыта |
upload_filetypes | jpg jpeg png gif |
blog_upload_space | 100 |
fileupload_maxk | 2000 |
site_admins | a:1:{i:0;s:4:»admin»;} |
allowedthemes | a:1:{s:18:»theme-child»;b:1;} |
active_sitewide_plugins | a:1:{s:33:»plugin-switching/plugin-switching.php»;i:1473022930;} |
WPLANG | ru_RU |
user_count | 5 |
blog_count | 10 |
Заключение
get_site_option()
— это важная функция для получения сетевых настроек в мультисайт-установке WordPress. Она упрощает управление опциями, доступными на уровне сети, и позволяет быстро получать параметры, относящиеся ко всем сайтам в сети.