get_site_transient() WP 2.9.0

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

Якщо на сайті використовується об’єктне кешування, то часові опції будуть отримані з кешу, інакше дані беруться за допомогою get_site_option() (див. логіку роботи в описі).

Використовуйте get_transient() , коли потрібно отримати тимчасову опцію поточного сайту, а не основного сайту мережі.

Відмінність get_transient() від get_site_transient() така сама як між get_network_option() .

Повертає

Разное.

  • false повертається у таких випадках:

    • якщо тимчасової опції не існує
    • або вона має порожнє значення
    • чи вона прострочена.
  • В інших випадках повертає отримане значення опції.

Примітка: false, що повертається, потрібно перевіряти тотожною рівністю ( === ), а не звичайною подвійною рівністю, тому що в значенні опції може знаходиться 0 або порожній рядок, порожній масив. З цієї ж причини, не потрібно зберігати значення опції false, зберігайте натомість 0 або помістіть false в масив.

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

get_site_transient($transient);
$transient
(рядок) (обов’язковий)
Назва часової опції.

Приклади

0

#1 Приклад використання

Допустимо, у нас є дані, які використовуються на всіх сайтах мережі. Ці дані потрібно отримувати за запитом HTTP з іншого сайту, тому цей запит добре б закешувати. Для цієї мети добре підійде ця функція. Нижче показано логіку такого коду:

$transient = 'some_trans_name';
$ remote_data = get_site_transient( $transient );

if( false === $remote_data ){
	$remote_data = file_get_contents( 'http://dom.ru/promo/yith-promo.xml');
}

if( $remote_data ){
	set_site_transient($transient, $remote_data, WEEK_IN_SECONDS);
}

нотатки

список змін

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

Код get_site_transient() WP 6.0.2

function get_site_transient( $transient ) {

	/**
	 * Filters є значенням існуючого контенту мережі перед тим, як він retrieved.
	 *
	 * Dynamic port of the hook name, `$transient`, refers to the transient name.
	 *
	 * Returning a truthy value from the filter will effectively short-circuit retrieval
	 * and return the passed value instead.
	 *
	 * @ Since 2.9.0
	 * @since 4.4.0 The `$transient` parameter was added.
	 *
	 * @param mixed $pre_site_transient Значна величина значення для відновлення, якщо мережа transient не існує.
	 * Any value other than false will short-circuit the retrieval
	 * of the transient, and return that value.
	 * @param string $transient Transient name.
	 */
	$pre = apply_filters( "pre_site_transient_{$transient}", false, $transient );

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

	if ( wp_using_ext_object_cache() || wp_installing() ) {
		$value = wp_cache_get( $transient, 'site-transient');
	} else {
		// Core transients that do not have a timeout. Listed here so querying timeouts може бути avoided.
		$no_timeout = array( 'update_core', 'update_plugins', 'update_themes' );
		$transient_option = '_site_transient_'. $transient;
		if ( ! in_array( $transient, $no_timeout, true ) ) {
			$transient_timeout = '_site_transient_timeout_'. $transient;
			$ timeout = get_site_option ($ transient_timeout);
			if ( false !== $timeout && $timeout < time() ) {
				delete_site_option( $transient_option );
				delete_site_option( $transient_timeout );
				$ value = false;
			}
		}

		if ( ! isset ( $ value ) ) {
			$ value = get_site_option ($ transient_option);
		}
	}

	/**
	 * Filters the value of an existing site transient.
	 *
	 * Dynamic port of the hook name, `$transient`, refers to the transient name.
	 *
	 * @ Since 2.9.0
	 * @since 4.4.0 The `$transient` parameter was added.
	 *
	 * @param mixed $value Value of site transient.
	 * @param string $transient Transient name.
	 */
	return apply_filters( "site_transient_{$transient}", $value, $transient );
}

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

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