get_network_option() WP 4.4.0

Отримує значення вказаної опції мережі (основного сайту мережі мультисайт).

Якщо викликати цю функцію над MU складання то управління передається get_option() .

Функція отримує дані з кешу, якщо це можливо.

У разі встановлення Multisite структура опцій сайтів розширюється.

У WordPress є чотири схожі функції:

  1. get_network_option()
  2. get_site_option()
  3. get_blog_option()
  4. get_option()

Ці функції можна зібрати до груп:

get_network_option() і get_site_option()
get_blog_option() і get_option()

Детальніше читайте у розділі: Структура сайтів та блогів .

Основа для:
get_site_option()

Повертає

Разное. Значення налаштування, якщо його вдалося отримати. Якщо вказаної опції немає, то поверне false чи вказане у 3-му параметрі дефолтне значення.

Використання

get_network_option ($ network_id, $ option, $ default);
$network_id
(число) (обов’язковий)
ID мережі (основний сайт, блог). Можна вказати null, тоді використовуватиметься ID поточної мережі.
$option
(рядок) (обов’язковий)
Назву опції, яку потрібно отримати. Чекає на «брудний» для SQL запит рядок.
$default
(змішаний)
Значення, яке необхідно повернути, якщо опції не існує.


Типово: false

Приклади

0

#1 Отримаємо email адміністратора мережі сайтів

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

Цей рядок можна замінити на:

$admin_email = get_site_option( 'admin_email' );

Список деяких опцій сайту мережі:

Назва опціїЗначення
site_nameМультисайт
admin_email[email protected]
admin_user_id1
registrationuser
upload_filetypesjpg jpeg png gif mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg wma m4a wav mp4 m4v webm ogv wmv flv
blog_upload_space100
fileupload_maxk1500
site_adminsa:1:{i:0;s:4:”nick”;}
дозволенітемиa:1:{s:19:”twentysixteen-child”;b:1;}
wpmu_upgrade_site37965
welcome_emailПривіт, USERNAME! Ваш новий сайт у мережі SITE_NAME успішно створений за адресою: ….
first_postЛаскаво просимо до сайту %s. Це ваш перший запис. Відредагуйте або видаліть її, а потім пишіть!
siteurlhttp://multiexample.com/wp/
add_new_users1
upload_space_check_disabled1
subdomain_install1
global_terms_enabled0
ms_files_rewriting0
initial_db_version36686
active_sitewide_pluginsa:1:{s:33:”user-switching/user-switching.php”;i:1473022930;}
WPLANGru_RU
user_count4
blog_count3
can_compress_scripts1
recently_activateda:1:{s:28:”democracy-poll/democracy.php”;i:1473020642;}
registrationnotificationyes
welcome_user_emailПривіт, USERNAME! Ваш обліковий запис налаштовано. ….
menu_itemsa:0:{}
first_page
first_comment
first_comment_url
first_comment_author
limited_email_domains
banned_email_domains
first_comment_email

нотатки

  • Дивіться: get_option()
  • Global. wpdb. $wpdb WordPress database abstraction object.

список змін

З версії 4.4.0Введено.

Код get_network_option() WP 6.0.2

function get_network_option( $network_id, $option, $default = 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 не specified.
	if ( ! $network_id ) {
		$network_id = get_current_network_id();
	}

	/**
	 * Filters є значенням, що існує мережа option перед тим, як це retrieved.
	 *
	 * The dynamic portion of hook name, `$option`, refers to the option name.
	 *
	 * Returning a truthy value from the filter will effectively short-circuit retrieval
	 * and return the passed 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` parameter was added.
	 *
	 * @param mixed $pre_option Встановлення до відновленого звільнення з опції значення. This differs
	 * від `$default`, який використовується як fallback value in the event
	 * the option doesn't exist elsewhere in get_network_option().
	 * Default false (до skip past the short-circuit).
	 * @param string $option Option name.
	 * @param int $network_id ID of the network.
	 * @param mixed $default fallback value return if option does no exist.
	 * Default false.
	 */
	$pre = apply_filters( "pre_site_option_{$option}", false, $option, $network_id, $default );

	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 a specific default network option.
		 *
		 * The dynamic portion of 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 Встановлення до відновлення, якщо мережа опція не існує
		 * в thebase.
		 * @param string $option Option name.
		 * @param int $network_id ID of the network.
		 */
		return apply_filters( "default_site_option_{$option}", $default, $option, $network_id );
	}

	if ( ! is_multisite() ) {
		/** Цей filter is documented в wp-includes/option.php */
		$default = apply_filters( 'default_site_option_' . $option, $default, $option, $network_id );
		$ value = get_option ($ option, $ default);
	} 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');

				/** Цей filter is documented в wp-includes/option.php */
				$value = apply_filters( 'default_site_option_' . $option, $default, $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 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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *