WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

get_transient() WP 2.8

Получает значение временной опции.

Если на сайте используется объектное кэширование, то временные опции будут записываться в существующий кэш, а не в таблицу wp_options.

Хуки из функции:
Возвращает

false/значение. false возвращается в следующих случаях:

  • если временной опции не существует
  • или она имеет пустое значение
  • или она просрочена.

В других случаях возвращает полученное значение опции.

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

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

get_transient( $transient );
$transient(строка) (обязательный)
Название временной опции.

Примеры

#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 = new WP_Query( 'cat=5&order=random&tag=tech&post_meta_key=thumbnail' );
	set_transient( 'special_query_results', $special_query_results );
}

// Используем $special_query_results как обычно...

Код get transient: wp-includes/option.php WP 4.8.1

<?php
function get_transient( $transient ) {

	/**
	 * Filters the value of an existing transient.
	 *
	 * The dynamic portion of the hook name, `$transient`, refers to the transient name.
	 *
	 * Passing a truthy value to the filter will effectively short-circuit retrieval
	 * of the transient, returning the passed value instead.
	 *
	 * @since 2.8.0
	 * @since 4.4.0 The `$transient` parameter was added
	 *
	 * @param mixed  $pre_transient The default value to return if the transient does not exist.
	 *                              Any value other than false will short-circuit the retrieval
	 *                              of the transient, and return the returned 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() ) {
		$value = wp_cache_get( $transient, 'transient' );
	} else {
		$transient_option = '_transient_' . $transient;
		if ( ! wp_installing() ) {
			// If option is not in alloptions, it is not autoloaded and thus has a 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.
	 *
	 * The dynamic portion 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 );
}

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

Из раздела: Временные опции (transients)

get_transient 1 комментарий

Здравствуйте, !

Ваш комментарий