Функция get_network_option() используется для получения значения заданной опции сети в WordPress. Она является частью функциональности мультисайтов (Multisite) и позволяет работать с уникальными параметрами каждой сети. Если WordPress не настроен как мультисайт, то вместо get_network_option() применяется get_option() для текущего сайта.
Важно: Если запрашиваемая опция не существует, функция вернет значение по умолчанию, указанное в третьем параметре.
get_network_option( int $network_id, string $option, mixed $default_value = false ): mixed
Параметры функции
$network_id(int): ID сети, для которой требуется получить опцию. Если указаноnull, используется ID текущей сети.$option(string): Название опции, которую нужно получить.$default_value(mixed): Значение, возвращаемое, если опция не существует. По умолчанию этоfalse.
Возвращаемое значение
- mixed: Возвращает значение опции, если оно существует. В противном случае возвращает
falseили значение, указанное в$default_value.
Хуки функции
pre_site_option_{$option}— вызывается до получения опции.default_site_option_{$option}— вызывается для установки значения по умолчанию.site_option_{$option}— вызывается после получения опции.
Пример 1: Получение email администратора сети
Допустим, у нас есть несколько сетей, и нам нужно получить email администратора для сети с ID 2.
$admin_email = get_network_option( 2, 'admin_email' );
Пример 2: Получение текстового значения для сайта сети
Предположим, мы хотим получить название сайта сети с ID 3. Если параметр не существует, возвращаем значение по умолчанию 'Сайт сети'.
$site_name = get_network_option( 3, 'site_name', 'Сайт сети' );
Пример 3: Получение допустимых типов файлов для загрузки
Для сети с ID 5 нам нужно получить типы файлов, которые разрешены для загрузки. Если опция не настроена, возвращаем стандартное значение.
$upload_filetypes = get_network_option( 5, 'upload_filetypes', 'jpg jpeg png gif' );
Пример 4: Получение лимита места для загрузки файлов
Пусть у нас есть сеть с ID 4, и требуется узнать, сколько мегабайт выделено под загрузку файлов для этой сети.
$upload_limit = get_network_option( 4, 'blog_upload_space', 200 ); // Значение по умолчанию - 200 MB
Пример 5: Проверка возможности добавления новых пользователей
Получим значение опции add_new_users для текущей сети, чтобы узнать, разрешено ли добавление новых пользователей. Если параметр отсутствует, возвращаем значение 0 (запрещено).
$can_add_users = get_network_option( null, 'add_new_users', 0 );
Сравнение с другими функциями WordPress
WordPress предоставляет несколько похожих функций для работы с настройками, в зависимости от уровня:
get_network_option()иget_site_option()— работают на уровне сети.get_blog_option()иget_option()— работают на уровне отдельного сайта.
Используйте get_network_option(), если требуется доступ к настройкам мультисайта, и get_option() — если нужен доступ к настройкам только одного сайта.
Заключение
Функция get_network_option() предоставляет удобный способ доступа к настройкам сети в мультисайт-среде WordPress. Она полезна для работы с уникальными параметрами, которые могут меняться для каждой сети. Если функция вызывается в среде без мультисайтов, то ее роль выполняет get_option(), что делает разработку более универсальной.