El transient de WordPress no utiliza el transient

26 ago 2020, 23:21:40
Vistas: 187
Votos: 1

Soy nuevo en los transients pero creo que entiendo la lógica detrás de ellos.

Tengo un blog y obtengo las publicaciones a través de la API desde otro blog mío.

Ahora me gustaría guardar los datos en un transient para no hacer una solicitud cada vez que visite la página.

Aquí está mi código:

if (false === ($posts === get_transient('posts_array'))) {

    $response = wp_remote_get( 'https://website.com/blog/wp-json/wp/v2/posts?per_page=5&_embed' );
    // Salir si hay error.
    if ( is_wp_error( $response ) ) {
        return;
    }
        
    $posts[] = json_decode( wp_remote_retrieve_body( $response ) );

    set_transient('posts_array', $posts, DAY_IN_SECONDS);
}

Por alguna razón, mi WordPress no obtiene los transients y parece que siempre hace la solicitud a la API para obtener los $posts. ¿Debería asignar en algún lugar $posts con get_transient si existe?

0
Todas las respuestas a la pregunta 1
0

Me refiero brevemente a que tu código está mal en la primera línea, la comparación es incorrecta. La variable $post debería almacenar = los datos de la solicitud mediante get_transient() y no comparar ===.

Por lo tanto, deberías cambiarlo a:

if ( false === ( $posts = get_transient('posts_array') ) ) {
    // este código se ejecuta cuando no hay un transient válido establecido
}
27 ago 2020 10:31:16