get_transient() WP 2.8.0

Отримує значення часової опції.

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

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

Щоб писати їх в опції головного сайту, використовуйте: get_site_transient() .

Повертає

Разное.

  • false

    • якщо тимчасової опції немає.
    • або вона має пусте значення.
    • чи вона прострочена.
  • значение опции– Коли вдалося отримати значення.

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

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

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

Приклади

0

#1 Приклад збереження запиту

Цей приклад показує використання get_transient() , set_transient() разом з WP_Query , щоб зберегти результат запиту в тимчасову опцію.

Це може стати в нагоді для полегшення важких запитів, ми можемо їх кешувати за допомогою get_transient, set_transient:

// Отримаємо існуючі дані
$special_query_results = get_transient( 'special_query_results' );

if ( false === $special_query_results ) {

	// Дані отримати не вдалося, тому створимо їх і збережемо
	$special_query_results = новий WP_Query( 'cat=5&order=random&tag=tech&post_meta_key=thumbnail' );
	set_transient( 'special_query_results', $special_query_results );
}

// Використовуємо $special_query_results як завжди...

список змін

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

Код get_transient() WP 6.0.2

function get_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.8.0
	 * @since 4.4.0 The `$transient` parameter was added
	 *
	 * @param mixed $pre_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_transient_{$transient}", false, $transient );

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

	if ( wp_using_ext_object_cache() || wp_installing() ) {
		$ value = wp_cache_get ($ transient, 'transient');
	} else {
		$transient_option = '_transient_'. $transient;
		if ( ! wp_installing() ) {
			// If option is not in alloptions, it not autoloaded and thus has timeout.
			$alloptions = wp_load_alloptions();
			if ( ! isset( $alloptions[ $transient_option ] ) ) {
				$transient_timeout = '_transient_timeout_'. $transient;
				$ timeout = get_option ($ transient_timeout);
				if ( false !== $timeout && $timeout < time() ) {
					delete_option ($ transient_option);
					delete_option( $transient_timeout );
					$ value = false;
				}
			}
		}

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

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

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

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