WordPress transient non utilizza il transient

26 ago 2020, 23:21:40
Visualizzazioni: 187
Voti: 1

Sono nuovo ai transient ma penso di aver capito la logica che c'è dietro.

Ho un blog e recupero i post tramite API da un altro mio blog.

Ora vorrei salvare i dati in un transient per evitare di 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' );
    // Esci se c'è un errore
    if ( is_wp_error( $response ) ) {
        return;
    }
        
    $posts[] = json_decode( wp_remote_retrieve_body( $response ) );

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

Per qualche motivo il mio WordPress non sembra recuperare i transient e continua sempre a fare la richiesta all'API per ottenere i $posts. Dovrei assegnare da qualche parte $posts con get_transient se esiste?

0
Tutte le risposte alla domanda 1
0

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

Quindi dovresti cambiare in:

if ( false === ( $posts = get_transient('posts_array') ) ) {
    // questo codice viene eseguito quando non è impostato un transient valido
}
27 ago 2020 10:31:16