Transient di WordPress non usa il transiente

Aug 27 2020

Sono nuovo ai transitori ma penso di aver capito la logica dietro.

Quindi ho un blog e prendo i post tramite l'API da un altro mio blog.

Ora vorrei salvare i dati in modo transitorio in modo da non fare una richiesta ogni volta che visito la pagina.

Ecco il mio codice:

if (false === ($posts === get_transient('posts_array'))) { $response = wp_remote_get( 'https://website.com/blog/wp-json/wp/v2/posts?per_page=5&_embed' );
    // Exit if error.
    if ( is_wp_error( $response ) ) { return; } $posts[] = json_decode( wp_remote_retrieve_body( $response ) ); set_transient('posts_array', $posts, DAY_IN_SECONDS);
}

Ora, per qualche motivo il mio WordPress non ottiene i transitori sembra che fa sempre la richiesta per l'API per ottenere la $postsdevo in qualche assegnare $postscon get_transientse esiste?

Risposte

2 bueltge Aug 27 2020 at 14:31

Voglio dire in breve il tuo codice è sbagliato nella prima riga, il confronto è sbagliato. La variabile $postdovrebbe memorizzare =i dati della richiesta tramite get_transient()e non confrontare ===.

Quindi dovresti passare a:

if ( false === ( $posts = get_transient('posts_array') ) ) {
    // this code runs when there is no valid transient set
}