WordPress ชั่วคราวไม่ใช้ชั่วคราว

Aug 27 2020

ฉันใหม่กับช่วงเวลาชั่วคราว แต่ฉันคิดว่าฉันเข้าใจตรรกะที่อยู่เบื้องหลัง

ดังนั้นฉันจึงมีบล็อกและฉันได้รับโพสต์ผ่าน API จากบล็อกอื่นของฉัน

ตอนนี้ฉันต้องการบันทึกข้อมูลแบบชั่วคราวดังนั้นฉันจึงไม่ได้ร้องขอทุกครั้งที่เยี่ยมชมเพจ

นี่คือรหัสของฉัน:

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);
}

ตอนนี้ด้วยเหตุผลบางอย่าง WordPress ของฉันไม่ได้ชั่วคราวก็ดูเหมือนว่ามันมักจะทำให้การร้องขอไปยัง API ที่จะได้รับ$postsฉันควรจะอยู่ที่ไหนสักแห่งกำหนด$postsด้วยget_transientถ้ามันอยู่?

คำตอบ

2 bueltge Aug 27 2020 at 14:31

ฉันหมายความว่าในไม่ช้ารหัสของคุณผิดในบรรทัดแรกการเปรียบเทียบไม่ถูกต้อง ตัวแปร$postควรจัดเก็บ=ข้อมูลของการร้องขอผ่านทางและไม่เปรียบเทียบget_transient()===

ดังนั้นคุณควรเปลี่ยนไปใช้:

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