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
}