# get_network_option()

URL: https://chugunov.pro/api-wordpress/functions/get_network_option/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.4.0.

## Сигнатура

```php
get_network_option( int|null $network_id, string $option, mixed $default_value = false ): mixed
```

## Описание

См. alsoget_option()

## Параметры

- `$network_id` `int|null` — обязательный. ID сети. Может быть null, чтобы по умолчанию использовать ID текущей сети.
- `$option` `string` — обязательный. Имя извлекаемой опции. Ожидается, что не экранировано для SQL.
- `$default_value` `mixed` — необязательный, по умолчанию `false`. Значение, возвращаемое, если опция не существует.

## Возвращаемое значение

`mixed`

## Исходный код

Файл: `wp-includes/option.php:1999`

```php
function get_network_option( $network_id, $option, $default_value = false ) {
	global $wpdb;

	if ( $network_id && ! is_numeric( $network_id ) ) {
		return false;
	}

	$network_id = (int) $network_id;

	// Fallback to the current network if a network ID is not specified.
	if ( ! $network_id ) {
		$network_id = get_current_network_id();
	}

	/**
	 * Filters the value of an existing network option before it is retrieved.
	 *
	 * The dynamic portion of the hook name, `$option`, refers to the option name.
	 *
	 * Returning a value other than false from the filter will short-circuit retrieval
	 * and return that value instead.
	 *
	 * @since 2.9.0 As `pre_site_option_{$key}`.
	 * @since 3.0.0
	 * @since 4.4.0 The `$option` parameter was added.
	 * @since 4.7.0 The `$network_id` parameter was added.
	 * @since 4.9.0 The `$default_value` parameter was added.
	 *
	 * @param mixed  $pre_site_option The value to return instead of the option value. This differs from
	 *                                `$default_value`, which is used as the fallback value in the event
	 *                                the option doesn't exist elsewhere in get_network_option().
	 *                                Default false (to skip past the short-circuit).
	 * @param string $option          Option name.
	 * @param int    $network_id      ID of the network.
	 * @param mixed  $default_value   The fallback value to return if the option does not exist.
	 *                                Default false.
	 */
	$pre = apply_filters( "pre_site_option_{$option}", false, $option, $network_id, $default_value );

	/**
	 * Filters the value of any existing network option before it is retrieved.
	 *
	 * Returning a value other than false from the filter will short-circuit retrieval
	 * and return that value instead.
	 *
	 * @since 6.9.0
	 *
	 * @param mixed  $pre_option    The value to return instead of the network option value. This differs
	 *                              from `$default_value`, which is used as the fallback value in the event
	 *                              the option doesn't exist elsewhere in get_network_option().
	 *                              Default false (to skip past the short-circuit).
	 * @param string $option        Name of the option.
	 * @param int    $network_id    ID of the network.
	 * @param mixed  $default_value The fallback value to return if the option does not exist.
	 *                              Default false.
	 */
	$pre = apply_filters( 'pre_site_option', $pre, $option, $network_id, $default_value );

	if ( false !== $pre ) {
		return $pre;
	}

	// Prevent non-existent options from triggering multiple queries.
	$notoptions_key = "$network_id:notoptions";
	$notoptions     = wp_cache_get( $notoptions_key, 'site-options' );

	if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {

		/**
		 * Filters the value of a specific default network option.
		 *
		 * The dynamic portion of the hook name, `$option`, refers to the option name.
		 *
		 * @since 3.4.0
		 * @since 4.4.0 The `$option` parameter was added.
		 * @since 4.7.0 The `$network_id` parameter was added.
		 *
		 * @param mixed  $default_value The value to return if the site option does not exist
		 *                              in the database.
		 * @param string $option        Option name.
		 * @param int    $network_id    ID of the network.
		 */
		return apply_filters( "default_site_option_{$option}", $default_value, $option, $network_id );
	}

	if ( ! is_multisite() ) {
		/** This filter is documented in wp-includes/option.php */
		$default_value = apply_filters( 'default_site_option_' . $option, $default_value, $option, $network_id );
		$value         = get_option( $option, $default_value );
	} else {
		$cache_key = "$network_id:$option";
		$value     = wp_cache_get( $cache_key, 'site-options' );

		if ( ! isset( $value ) || false === $value ) {
			$row = $wpdb->get_row( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $option, $network_id ) );

			// Has to be get_row() instead of get_var() because of funkiness with 0, false, null values.
			if ( is_object( $row ) ) {
				$value = $row->meta_value;
				$value = maybe_unserialize( $value );
				wp_cache_set( $cache_key, $value, 'site-options' );
			} else {
				if ( ! is_array( $notoptions ) ) {
					$notoptions = array();
				}

				$notoptions[ $option ] = true;
				wp_cache_set( $notoptions_key, $notoptions, 'site-options' );

				/** This filter is documented in wp-includes/option.php */
				$value = apply_filters( 'default_site_option_' . $option, $default_value, $option, $network_id );
			}
		}
	}

	if ( ! is_array( $notoptions ) ) {
		$notoptions = array();
		wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
	}

	/**
	 * Filters the value of an existing network option.
	 *
	 * The dynamic portion of the hook name, `$option`, refers to the option name.
	 *
	 * @since 2.9.0 As `site_option_{$key}`.
	 * @since 3.0.0
	 * @since 4.4.0 The `$option` parameter was added.
	 * @since 4.7.0 The `$network_id` parameter was added.
	 *
	 * @param mixed  $value      Value of network option.
	 * @param string $option     Option name.
	 * @param int    $network_id ID of the network.
	 */
	return apply_filters( "site_option_{$option}", $value, $option, $network_id );
}
```

## История изменений

- 4.4.0 — Introduced.

## Связанные

Использует: [`get_current_network_id`](https://chugunov.pro/api-wordpress/functions/get_current_network_id/), [`wp_cache_set`](https://chugunov.pro/api-wordpress/functions/wp_cache_set/), [`maybe_unserialize`](https://chugunov.pro/api-wordpress/functions/maybe_unserialize/), `wpdb::get_row`, [`wp_cache_get`](https://chugunov.pro/api-wordpress/functions/wp_cache_get/), [`is_multisite`](https://chugunov.pro/api-wordpress/functions/is_multisite/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_option`](https://chugunov.pro/api-wordpress/functions/get_option/), `wpdb::prepare`.
Используется в: `WP_Application_Passwords::is_in_use`, `WP_Application_Passwords::create_new_application_password`, [`wp_initialize_site`](https://chugunov.pro/api-wordpress/functions/wp_initialize_site/), [`wp_insert_site`](https://chugunov.pro/api-wordpress/functions/wp_insert_site/), [`is_site_meta_supported`](https://chugunov.pro/api-wordpress/functions/is_site_meta_supported/), `WP_Network::get_main_site_id`, `WP_Network::_set_site_name`, [`update_network_option`](https://chugunov.pro/api-wordpress/functions/update_network_option/), [`add_network_option`](https://chugunov.pro/api-wordpress/functions/add_network_option/), [`get_site_option`](https://chugunov.pro/api-wordpress/functions/get_site_option/), [`get_blog_count`](https://chugunov.pro/api-wordpress/functions/get_blog_count/), [`get_user_count`](https://chugunov.pro/api-wordpress/functions/get_user_count/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_network_option/
