WordPress transient nu utilizează transient-ul

26 aug. 2020, 23:21:40
Vizualizări: 187
Voturi: 1

Sunt nou în utilizarea transientelor, dar cred că înțeleg logica din spatele lor.

Am un blog și preiau articolele prin API de la un alt blog de-al meu.

Acum aș dori să salvez datele într-un transient pentru a nu face o cerere de fiecare dată când vizitez pagina.

Iată codul meu:

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

    $response = wp_remote_get( 'https://website.com/blog/wp-json/wp/v2/posts?per_page=5&_embed' );
    // Ieși dacă apare o eroare.
    if ( is_wp_error( $response ) ) {
        return;
    }
        
    $posts[] = json_decode( wp_remote_retrieve_body( $response ) );

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

Din anumite motive, WordPress nu preia transient-ul și se pare că face întotdeauna o cerere către API pentru a obține $posts. Ar trebui să atribui undeva $posts cu get_transient dacă acesta există?

0
Toate răspunsurile la întrebare 1
0

Vreau să spun pe scurt că codul tău este greșit în prima linie, comparația este incorectă. Variabila $post ar trebui să stocheze = datele cererii prin intermediul get_transient() și nu să compare ===.

Deci ar trebui să schimbi în:

if ( false === ( $posts = get_transient('posts_array') ) ) {
    // acest cod rulează atunci când nu există un transient valid setat
}
27 aug. 2020 10:31:16