WordPress transient не использует временные данные
26 авг. 2020 г., 23:21:40
Просмотры: 187
Голосов: 1
Я новичок в работе с transients, но вроде понимаю их логику.
У меня есть блог, и я получаю посты через API с другого своего блога.
Теперь я хочу сохранить данные в transient, чтобы не делать запрос при каждом посещении страницы.
Вот мой код:
if (false === ($posts === get_transient('posts_array'))) {
$response = wp_remote_get( 'https://website.com/blog/wp-json/wp/v2/posts?per_page=5&_embed' );
// Выходим при ошибке
if ( is_wp_error( $response ) ) {
return;
}
$posts[] = json_decode( wp_remote_retrieve_body( $response ) );
set_transient('posts_array', $posts, DAY_IN_SECONDS);
}
По какой-то причине мой WordPress не использует transients - кажется, что он всегда делает запрос к API для получения $posts
. Нужно ли мне где-то явно присваивать $posts
значение из get_transient
, если оно существует?

loliki
185
Все ответы на вопрос
1
0
Я имею в виду, что ваш код неверен в первой строке, сравнение выполнено неправильно. Переменная $post
должна хранить =
данные запроса через get_transient()
, а не сравнивать их ===
.
Поэтому вам следует заменить на:
if ( false === ( $posts = get_transient('posts_array') ) ) {
// этот код выполняется, если нет установленного валидного транзиента
}

bueltge
17.1K
27 авг. 2020 г. 10:31:16
Похожие вопросы
2
ответов