Функция get_network_option(): получени�� значения опции сети в WordPress

## get_network_option() │ WP 4.4.0

Функция get_network_option() используется для получения значения опции сети на основе её имени.

### Использование

Функция вызывается следующим образом:

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

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

Функция может вернуть любое значение, установленное для опции.

Примеры использования

1. Получение электронной почты администратора сети сайта

$admin_email = get_network_option( null, 'admin_email' );

Этот вызов можно заменить на:

$admin_email = get_site_option( 'admin_email' );

Примечания

  • Используйте функцию get_option() для получения опций.
  • Глобальная переменная: $wpdb — объект абстракции базы данных WordPress.

Изменения

  • Введена в версии 4.4.0.

Код функции

Функция реализована в файле wp-includes/option.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;

// Падение на текущую сеть, если ID сети не указан.
if ( ! $network_id ) {
    $network_id = get_current_network_id();
}

// Фильтр для значения опции перед её получением.
$pre = apply_filters( "pre_site_option_{$option}", false, $option, $network_id, $default_value );

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

// Логика кеширования опций.
$notoptions_key = "$network_id:notoptions";
$notoptions     = wp_cache_get( $notoptions_key, 'site-options' );

if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {
    return apply_filters( "default_site_option_{$option}", $default_value, $option, $network_id );
}

if ( ! is_multisite() ) {
    $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 ) );

        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' );
            $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' );
}

return apply_filters( "site_option_{$option}", $value, $option, $network_id );

}

Связанные функции

  • add_network_option()
  • add_option()
  • delete_option()
  • get_option()
  • get_site_option()
  • register_setting()
  • update_option()
  • update_site_option()
  • get_site_transient()

Эти функции имеют отношение к работе с опциями и могут быть полезны для управления настройками в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *