Transients API คืออะไร?
เผยแพร่แล้ว: 2020-12-16ประสิทธิภาพของเว็บไซต์มักวนเวียนอยู่กับแนวคิดของการแคช: การจัดเก็บข้อมูลในสถานะที่พร้อมใช้งานและเข้าถึงได้เร็วขึ้นเพื่อให้เบราว์เซอร์ทำซ้ำได้เร็วขึ้น WordPress Transients API เป็นเครื่องมือสำหรับการแคชและเป็นวิธีที่มีประสิทธิภาพในการปรับปรุงประสิทธิภาพสำหรับเว็บไซต์ WordPress
แคชคืออะไรและทำไมถึงใช้?
เมื่อใดก็ตามที่เบราว์เซอร์ร้องขอหน้าเว็บเซิร์ฟเวอร์ที่ให้บริการจะต้องทำการคำนวณที่ซับซ้อนและใช้เวลานานซึ่งทำให้เกิดความล่าช้า หลังจากดำเนินการค้นหาด้วยเทคโนโลยีการแคชเซิร์ฟเวอร์สามารถจดจำผลลัพธ์สุดท้ายและเมื่อมีการร้องขอครั้งที่สองให้ส่งไปยังเบราว์เซอร์โดยไม่ต้องทำการคำนวณแบบเดิมอีก ดังนั้นความสามารถในการแคชและนำทรัพยากรก่อนหน้านี้กลับมาใช้ใหม่จึงมีความสำคัญต่อการเพิ่มประสิทธิภาพ
การแคชเป็นเพียงตัวเลือกในการจัดเก็บข้อมูลชั่วคราวในชั้นการแคช
ประเภทของการแคชคืออะไร?
การแคชมีหลายประเภทและด้วยการใช้แคชร่วมกันคุณจะได้รับประสิทธิภาพในระดับที่สูงขึ้น
การแคชเบราว์เซอร์
ก่อนที่จะเปิดเนื้อหาของหน้าเว็บเบราว์เซอร์ของคุณจำเป็นต้องมีสิ่งต่างๆมากมายเช่นไฟล์ JavaScript สไตล์ชีทแบบอักษรและอื่น ๆ ซึ่งทั้งหมดนี้จะดาวน์โหลดนอกเหนือจากเนื้อหาของหน้า
หากเบราว์เซอร์แคชไฟล์เหล่านี้คุณไม่จำเป็นต้องดาวน์โหลดทุกครั้งที่คุณโหลดเว็บไซต์ การโหลดไซต์เป็นครั้งแรกมักใช้เวลาไม่กี่วินาที แต่หลังจากที่เบราว์เซอร์แคชไฟล์เหล่านั้นเวลาในการโหลดจะลดลงอย่างมาก
การแคชเซิร์ฟเวอร์
การแคชเซิร์ฟเวอร์หมายถึงการบันทึกไฟล์ HTML สำหรับเพจใดเพจหนึ่งและใช้ if สำหรับแต่ละคำขอที่ตามมา นี่คือสิ่งที่เรียกว่าแคชแบบเต็มหน้า
มีแคชเซิร์ฟเวอร์อีกประเภทหนึ่งคือแคชอ็อบเจ็กต์ซึ่งไม่เหมือนกับแคชแบบเต็มหน้าแคชเฉพาะข้อมูลบางบิต (ชิ้น)
การแคชหน้า
ถือเป็นแคชที่มีประสิทธิภาพสูงสุด ชื่อของมันเป็นตัวอธิบายวิธีการทำงาน เมื่อผู้ใช้ "A" เข้าชมหน้าเว็บไซต์จะสร้างและส่งคืนเนื้อหาไปยังเบราว์เซอร์ของผู้ใช้ เมื่อแคชเพจทำงานเนื้อหาของเพจนี้จะถูกบันทึกเพื่อที่ว่าเมื่อผู้ใช้ "B" เข้าชมเพจเดียวกันแคชของเพจจะสร้างเนื้อหาที่ส่งไปก่อนหน้านี้
ข้อได้เปรียบที่ยิ่งใหญ่ที่สุดของ Page Cache คือหน้าที่แคชจะส่งคืนเกือบในขณะที่เข้าถึง ด้วยเหตุนี้จึงมีการประมวลผลคำขอหลายล้านรายการและมีการสร้างหน้าซ้ำแม้ในเซิร์ฟเวอร์ที่อ่อนแอที่สุดด้วยความเร็วหน่วยความจำที่ต่ำที่สุดและการใช้งาน CPU เพียงเล็กน้อย
แต่แคชประเภทนี้ก็มีข้อเสียเช่นกันตัวอย่างเช่นไม่สามารถแคชเพจสำหรับผู้ใช้ที่ได้รับอนุญาตหรือสำหรับผู้ใช้ที่มีเนื้อหาของเพจขึ้นอยู่กับตัวแปรของผู้ใช้ปัจจุบัน
การแคชฐานข้อมูล
การแคชฐานข้อมูลเป็นกระบวนการที่รวมอยู่ในการออกแบบแอปพลิเคชันคอมพิวเตอร์ที่สร้างหน้าเว็บตามต้องการ (แบบไดนามิก) โดยการเข้าถึงฐานข้อมูลแบ็กเอนด์ แคชฐานข้อมูลช่วยเพิ่มฐานข้อมูลหลักของคุณโดยการขจัดแรงกดดันที่ไม่จำเป็นออกไปโดยทั่วไปจะอยู่ในรูปแบบของข้อมูลที่อ่านบ่อย แคชเองสามารถทำงานได้ในหลายพื้นที่รวมถึงฐานข้อมูลแอปพลิเคชันของคุณหรือเป็นเลเยอร์แบบสแตนด์อโลน
เมื่อแอปพลิเคชันเหล่านี้ถูกปรับใช้บนสภาพแวดล้อมแบบหลายชั้นที่เกี่ยวข้องกับไคลเอนต์ที่ใช้เบราว์เซอร์เซิร์ฟเวอร์เว็บแอปพลิเคชันและฐานข้อมูลแบ็กเอนด์จะใช้การแคชฐานข้อมูลระดับกลางเพื่อให้เกิดความสามารถในการปรับขนาดและประสิทธิภาพสูง
การแคชวัตถุ
การแคชวัตถุใน WordPress (อ็อบเจ็กต์แคช) เกี่ยวข้องกับการจัดเก็บแบบสอบถามฐานข้อมูล เป็นกลไกระบบในตัวที่ช่วยให้คุณบันทึกข้อมูล (วัตถุ) ประเภทใดก็ได้และเรียกดูเมื่อจำเป็น แคชนี้ใช้เพื่อเก็บผลลัพธ์ของการดำเนินการที่ซับซ้อน
เมื่อเปิดใช้งานบนไซต์ WordPress ของคุณจะช่วยเพิ่มความเร็วในการดำเนินการ PHP ส่งเนื้อหาไปยังผู้เยี่ยมชมไซต์ได้เร็วขึ้นและลดภาระในฐานข้อมูล
CDN (เครือข่ายการจัดส่งเนื้อหา)
เป็นโครงสร้างพื้นฐานเครือข่ายแบบกระจายทางภูมิศาสตร์ที่ให้การจัดส่งเนื้อหาไปยังผู้ใช้บริการเว็บและไซต์ได้อย่างรวดเร็ว เซิร์ฟเวอร์ที่รวมอยู่ใน CDN ตั้งอยู่ทางภูมิศาสตร์เพื่อให้เวลาตอบสนองสำหรับผู้ใช้ไซต์ / บริการน้อยที่สุด
Transients API ใน WordPress คืออะไร?
Transients API เป็นวิธีการจัดเก็บบล็อกข้อมูล (สตริงโค้ดเนื้อหา HTML WP_Query Objects JSON) ในฐานข้อมูลของเว็บไซต์ซึ่งตรงข้ามกับการแคชเบราว์เซอร์ Transients API คล้ายกับ Options API มาก แต่ข้อแตกต่างที่สำคัญคือ Transients API มีเวลาหมดอายุ หรืออายุการใช้งานที่ดีกว่า
การดำเนินการหลักสามประการสำหรับช่วงเวลาคือ การตั้งค่าการรับค่าและการลบค่า :
1. ตั้งค่าชั่วคราว -
set_transient (คีย์ $, ค่า $, $ หมดอายุ);
ในการตั้งค่าชั่วคราวคุณสามารถใช้ฟังก์ชัน set_transient () ซึ่งมีส่วนประกอบสามส่วน:
- คีย์ - ชื่อเฉพาะสั้น ๆ ของชั่วคราว ต้องมีความยาว 172 อักขระหรือน้อยกว่า
- ค่า - ตัวแปร PHP ประเภทใดก็ได้ที่มีข้อมูลซึ่งจะถูกเก็บไว้ในฐานข้อมูล
- Expiration Time (อายุการใช้งาน) - ระยะเวลาที่ข้อมูลจะถูกจัดเก็บ
ตัวอย่างเช่นหากเราต้องการบันทึกข้อความค้นหาโพสต์ในรายการของเราเป็นเวลาหนึ่งวัน:
set_transient ('unique_listing_posts_query_results_name',$ listing_posts_query_results DAY_IN_SECONDS);
อย่างที่คุณเห็นเราได้ใช้ค่าคงที่เวลาหนึ่ง (DAY_IN_SECONDS) ที่แนะนำใน WordPress 3.5 เพื่อแสดงเวลาได้อย่างง่ายดาย นี่คือรายการค่าคงที่ตลอดเวลาทั้งหมด:
MINUTE_IN_SECONDS = 60 (วินาที) HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS MONTH_IN_SECONDS = 30 * DAY_IN_SECONDS YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS
2. รับชั่วคราว -
get_transient (คีย์ $);
เพื่อให้ได้รับการบันทึกชั่วคราวเราสามารถใช้
get_transient ($ transient_name);
ในกรณีของเราเราสามารถดึงผลการค้นหารายการโพสต์ของเราด้วย:
get_transient ( 'unique_listing_posts_query_results_name' );
เราจะเห็นเพิ่มเติมในภายหลังในส่วนตัวอย่างของเรา
3. ลบชั่วคราว -
delete_transient (คีย์ $);
ดังที่เราได้อธิบายไว้ในส่วนย่อยก่อนหน้านี้เราสามารถใช้ Transients API เพื่อรับและจัดเก็บการตอบสนองจากฐานข้อมูลระยะไกลหรือในพื้นที่ (เนื้อหาหรือแบบสอบถามจากฐานข้อมูลของเรา)
อย่างไรก็ตามต่อไปนี้เป็นคำถามเกี่ยวกับ วิธีที่เราลบเนื้อหาเก่าที่เก็บไว้ (ชั่วคราว) มีสองวิธีในการล้าง (ลบ) ชั่วคราว:
การลบอัตโนมัติ
สิ่งที่น่าสนใจเกี่ยวกับการชั่วคราวคือมันจะหมดอายุโดยอัตโนมัติหากเรา ตั้งเวลาหมดอายุ (อายุการใช้งาน) หากคุณพยายามดึงข้อมูลชั่วคราวจากฐานข้อมูลของคุณหลังจากหมดอายุแล้ว WordPress จะลบออกโดยอัตโนมัติเพื่อป้องกันความยุ่งเหยิง ชั่วคราวจะถูกสร้างขึ้นใหม่เมื่อมีคนเปิดเว็บไซต์ วิธีนี้ทำให้เรามั่นใจได้ว่าเรามีเนื้อหาใหม่จาก API ระยะไกลหรือในเครื่อง
การลบด้วยตนเอง
บางครั้งเราจำเป็นต้องบังคับให้ชั่วคราวตายก่อนโดยการลบด้วยตนเอง สิ่งนี้มีประโยชน์เมื่อกิจกรรมที่กำหนด (เพิ่มรายการเมนูใหม่บันทึกหรืออัปเดตโพสต์เพิ่มหรืออัปเดตหมวดหมู่ ฯลฯ ) จะทำให้ข้อมูลแคชค้างและจำเป็นต้องอัปเดต:
ฟังก์ชันที่เราต้องใช้คือ
delete_transient ($ transient_name)
และในกรณีของเราควรเป็น:
delete_transient ( 'unique_listing_posts_query_results_name' );
หมายเหตุ: สิ่งสำคัญคืออย่าใช้ช่วงเวลาในการจัดเก็บข้อมูลที่มีค่าซึ่งไม่สามารถสร้างขึ้นใหม่ได้!
เหตุใดเราจึงควรใช้ API ชั่วคราว
เราสามารถใช้ Transients API เมื่อใดก็ตามที่เรามีค่าที่เน้นการคำนวณซึ่งไม่เปลี่ยนแปลงบ่อยนักและคุณต้องการแคช ใน WordPress โดยปกติแล้วสิ่งนี้จะเป็นวัตถุที่ได้จากการสืบค้นฐานข้อมูล แต่จริงๆแล้วอาจเป็นอะไรก็ได้ที่คุณเก็บไว้ในตัวแปรไม่ว่าจะเป็นค่าสเกลาร์อาร์เรย์หรือวัตถุ
ดังนั้นในทุกช่วงเวลาจึงยอดเยี่ยมเมื่อคุณทำแบบสอบถามที่ซับซ้อนในธีมและปลั๊กอินของคุณ
ประโยชน์ของการแคชการตอบกลับระยะไกลหรือในพื้นที่
การตอบสนอง API ระยะไกล
API ระยะไกลมักจะโทรหรือร้องขอไปยังเซิร์ฟเวอร์ระยะไกลหลายครั้งและมีเวลาแฝงเพิ่มเติม ซึ่งต้องใช้เวลาและทำให้เกิดความล่าช้า นอกจากนี้ API ระยะไกลบางตัวอาจมีการ จำกัด อัตราซึ่งหมายความว่าคุณสามารถเข้าถึงขีด จำกัด คำขอสูงสุดภายในช่วงเวลาที่กำหนด

และอย่างที่คุณทราบแล้วเราสามารถใช้ประโยชน์จาก Transients API เพื่อแคชการตอบสนอง (ผลลัพธ์) จากเซิร์ฟเวอร์ระยะไกลและเพื่อเก็บไว้ในฐานข้อมูลของเรา ตอนนี้เราสามารถใช้ไฟล์
get_transient ();
วิธีการและแสดงผลลัพธ์ / เนื้อหาที่เก็บไว้ (แคช) ทุกที่ที่ต้องการโดยไม่ต้องโทรหรือร้องขอจากระยะไกลอื่น ๆ
ทั้งหมดนี้จะ:
- ลดการโทรและคำขอ HTTPS ระยะไกล
- ลดการใช้งานเซิร์ฟเวอร์ CPU
- ปรับปรุงเวลาในการโหลดหน้าเว็บไซต์
การตอบสนอง API ภายใน
- โดยพื้นฐานแล้ว HTML หรือผลการสืบค้นจากฐานข้อมูล คุณสามารถใช้ Transients API ไม่เพียง แต่สำหรับการแคชการตอบกลับระยะไกลเท่านั้น แต่ยังใช้ในการจัดเก็บเนื้อหา HTML หรือผลลัพธ์ของคิวรีในฐานข้อมูลภายใน จะมีประโยชน์มากหากคุณต้องการแสดงส่วน HTML ที่ทำซ้ำได้บนเว็บไซต์ของคุณ (วิดเจ็ตแถบเลื่อนเมนู ฯลฯ ) หรือเพียงเพื่อป้องกันไม่ให้มีการเรียกใช้การสืบค้นฐานข้อมูลที่ซับซ้อนหรือช้าทุกครั้งเมื่อมีผู้เยี่ยมชมเว็บไซต์ของคุณ
ควรใช้ Transients ที่ไหนและเมื่อใด
- แบบสอบถามฐานข้อมูลที่ซับซ้อนและกำหนดเอง
- เมนูนำทาง WordPress
- วิดเจ็ตแถบด้านข้างที่แสดงข้อมูลเช่น; ทวีตรายชื่อผู้เยี่ยมชมไซต์ล่าสุดหรือรายการโพสต์จากหมวดหมู่หนึ่ง
- การแคชแท็กคลาวด์
- การแคชคำขอ HTTP ภายนอก
การใช้งานและตัวอย่าง
หลังจากมีคำอธิบายมากมายก็ถึงเวลาสำหรับตัวอย่างจริง
การใช้งานพื้นฐาน
ฟังก์ชัน get_my_data () { $ data = get_transient ('my_transient_name'); ถ้า (false === $ data) {// ชั่วคราวหมดอายุ / ยังไม่ได้ตั้งค่า $ data = fetch_my_data (); // ดึงข้อมูลจากแหล่งต้นฉบับ set_transient ('my_transient_name', $ data, HOUR_IN_SECONDS); } ส่งคืนข้อมูล $; }
fetch_my_data () ฟังก์ชันสามารถจัดเก็บ อ็อบเจ็กต์ WP_Query, ข้อมูล json, เนื้อหา html เป็นต้น
ตัวอย่างพื้นฐาน
ดังที่เราได้อธิบายไปแล้วว่าการแคชประเภทนี้ดีสำหรับการบันทึกผลของการดำเนินการที่ยาวนานและตัวอย่างที่ง่ายที่สุดคือการเข้าถึง API ภายนอกเช่น Facebook
ลองนึกภาพว่าเรามีฟังก์ชั่นต่อไปนี้ซึ่งเข้าถึง API ของ Facebook ร้องขอออบเจ็กต์ (อย่างแม่นยำมากขึ้นเพจ) your-website.url และส่งคืนจำนวนไลค์ของเพจ:
ฟังก์ชัน get_facebook_likes () { $ result = wp_remote_get ('https://graph.facebook.com/your-website.url'); $ result = json_decode (wp_remote_retrieve_body ($ result)); ส่งคืน $ result-> ไลค์; } สะท้อน "ไลค์ Facebook:" get_facebook_likes ();
เวลาดำเนินการของฟังก์ชันนี้ขึ้นอยู่กับหลายปัจจัยรวมถึงตำแหน่งของเซิร์ฟเวอร์ของคุณที่สัมพันธ์กับเซิร์ฟเวอร์ Facebook สถานะและความเร็วของเครือข่าย ฯลฯ โดยเฉลี่ยแล้วฟังก์ชันอาจใช้เวลา 1-3 วินาที
ซึ่งหมายความว่าเมื่อใช้ฟังก์ชันนี้บนไซต์เวลาในการโหลดของแต่ละหน้าจะเพิ่มขึ้น 1-3 วินาที ยิ่งไปกว่านั้นหากเราเรียกใช้ฟังก์ชันนี้มากกว่า 500 ครั้งใน 500 วินาที Facebook จะเริ่มสร้างข้อผิดพลาดแทนที่จะเป็นผลลัพธ์
เพื่อเพิ่มความเร็วคุณสมบัตินี้เราสามารถใช้ WordPress Transients API และบันทึกผลเป็นเวลา 1 ชั่วโมง:
ฟังก์ชัน get_facebook_likes () { ถ้า (เท็จ === ($ likes = get_transient ('fb_likes'))) { $ result = wp_remote_get ('https://graph.facebook.com/your-website.url'); $ result = json_decode (wp_remote_retrieve_body ($ result)); $ likes = $ result-> ไลค์; // ตั้งค่าชั่วคราวเป็นเวลาหนึ่งชั่วโมงเป็นวินาที set_transient ('fb_likes', $ likes, 1 * HOUR_IN_SECONDS); } กลับ $ ชอบ; }
ดังนั้นเมื่อมีการเรียกใช้ฟังก์ชันนี้เป็นครั้งแรกหลังจากได้รับคำขอจาก Facebook WordPress จะเขียนผลลัพธ์ไปยังฐานข้อมูลและในอนาคตจะส่งคืนผลลัพธ์นี้จากฐานข้อมูลเป็นเวลาหนึ่งชั่วโมงโดยไม่ต้องร้องขอซ้ำไปยังเซิร์ฟเวอร์ Facebook และหลังจากผ่านไปหนึ่งชั่วโมงฟังก์ชั่นนี้จะเปลี่ยนเป็นข้อมูลของ Facebook อีกครั้ง
ด้วยวิธีนี้การเรียกใช้ฟังก์ชันนี้เพียงครั้งเดียวต่อชั่วโมงจะเพิ่มเวลาในการร้องขอขึ้น 1-3 วินาทีและการโทรที่ตามมาจะออกทันที
ตัวอย่างที่ซับซ้อนมากขึ้น
ลองนึกภาพว่าเรามีเว็บไซต์ที่มีประมาณ 100 หมวดหมู่และประมาณ 50,000 โพสต์และในการออกแบบโพสต์เดียวของเว็บไซต์เรามีวิดเจ็ตที่แสดงโพสต์ที่เกี่ยวข้องกับ N จากหมวดหมู่ที่โพสต์ปัจจุบันอยู่ ตามที่คาดไว้แบบสอบถามที่ซับซ้อนนี้จะใช้เวลาสักครู่เพื่อนำผลลัพธ์จากฐานข้อมูลมาแสดงบนเว็บไซต์
ลองนึกดูว่าคุณมีผู้ใช้ 10,000 คนที่เข้าถึงเว็บไซต์ในเวลาเดียวกัน ซึ่งหมายความว่าเราจะมีคำขอฐานข้อมูลมากกว่า 10,000 รายการที่ต้องทำแบบสอบถาม (นี่เป็นคำค้นหาที่ซับซ้อนเนื่องจากจะค้นหาผ่าน wp_terms, wp_term_relationships, wp_term_taxonomy, ตาราง wp_posts ดังนั้นจึงมีมากกว่า 10,000 แบบสอบถาม) เพื่อรับ ผลลัพธ์สำหรับ N โพสต์จากหมวดหมู่ที่เกี่ยวข้องและแสดงไว้ที่ส่วนหน้า ในทางกลับกันจะทำให้ฐานข้อมูลทำงานหนักเกินไปและทำให้เวลาโหลดโดยรวมของเว็บไซต์ล่าช้าและในบางกรณีอาจเกิดความผิดพลาดเนื่องจากการใช้งานฐานข้อมูลมากเกินไป
และต่อไปนี้เป็นคำถามว่าเราจะเพิ่มประสิทธิภาพและลดจำนวนคิวรีและคำขอฐานข้อมูลได้อย่างไร เหตุใดจึงมีแบบสอบถามมากมายทุกครั้งเมื่อเราสามารถใช้ประโยชน์จาก Transients API และเพียงแค่แคชวัตถุแบบสอบถามหรือแคชเอาต์พุต HTML ทั้งหมด ด้วยวิธีนี้เราจะลดและเพิ่มประสิทธิภาพจำนวนการสืบค้นฐานข้อมูลซึ่งจะนำไปสู่ประสิทธิภาพของเว็บไซต์ที่ดีขึ้นและประสบการณ์ของผู้ใช้ที่ดีขึ้น
ในกรณีของเราการสืบค้นจะค้นหาใน wp_terms, wp_term_relationships, wp_term_taxonomy, wp_posts ตาราง เพื่อให้ได้ผลลัพธ์ที่คาดหวังทั้งหมด
นี่คือตัวอย่างที่สมบูรณ์ว่าเราจะทำสิ่งนี้ให้สำเร็จได้อย่างไร:
function show_posts_from_category () { $ args = อาร์เรย์ ( 'cat' => 555, // รหัสประเภทสุ่ม 'posts_per_page' => 8, // สุ่มจำนวนโพสต์ที่เกี่ยวข้องเพื่อแสดง 'No_found_rows' => จริง ); $ hash = md5 ($ args ['cat']); // แฮช MD5 ของ ID หมวดหมู่ $ transient_key = 'category-' แฮช $; // คีย์ชั่วคราว if (false === ($ posts_from_category_html = get_transient ($ transient_key))): // ชั่วคราวหมดอายุ / ยังไม่ได้ตั้งค่า $ the_query = WP_Query ใหม่ ($ args); // รับแบบสอบถาม ob_start (); // เปิดการบัฟเฟอร์เอาต์พุต ในขณะที่ ($ the_query-> have_posts ()): $ the_query-> the_post (); ?> <div class = "item"> <div class = "bigthumb"> <a href="<?php the_permalink();?> "rel =" bookmark "title =" <? php the_title ();?> "> <? php if (has_post_thumbnail ()) the_post_thumbnail ('big-thumb' ); ?> </a> </div> <h3> <a href="<?php the_permalink();?> "rel =" bookmark "title =" <? php the_title ();?> "> <? php the_title (); ?> </a> </h3> <? php the_excerpt (); ?> </div> <? php ในที่สุด; $ post_from_category_html = ob_get_contents (); // รับเนื้อหาของบัฟเฟอร์เอาต์พุตโดยไม่ต้องล้างข้อมูล ob_end_clean (); // ปิดการบัฟเฟอร์เอาต์พุตนี้ set_transient ($ transient_key, $ posts_from_category_html, $ transient_expire = 15 * MINUTE_IN_SECONDS); // การตั้งค่าชั่วคราวด้วยเวลาหมดอายุ 15 นาที wp_reset_postdata (); เอนดิฟ; ส่งคืน $ post_from_category_html; }
ความคิดสุดท้าย
การแคชเป็นวิธีที่ยอดเยี่ยมในการเร่งความเร็ว แต่คุณต้องรู้ให้แน่ชัดว่าคุณกำลังแคชอะไรอยู่ที่ไหนทำได้เมื่อไรและอย่างไรมิฉะนั้นคุณจะเสี่ยงต่อผลที่ไม่คาดคิด
หากคุณไม่แน่ใจว่ามีบางอย่างทำงานตามที่ตั้งใจไว้หรือไม่ให้หันไปใช้การทำโปรไฟล์เสมอ - ดูที่แต่ละแบบสอบถามเทียบกับฐานข้อมูลดูการเรียกใช้ฟังก์ชัน PHP ทั้งหมดเวลาและการใช้หน่วยความจำ
Transients API เป็นวิธีที่ยอดเยี่ยมในการเพิ่มประสิทธิภาพเวลาในการโหลดเว็บไซต์ WordPress ของคุณและเพื่อมอบประสบการณ์การใช้งานที่ยอดเยี่ยมแก่ผู้ใช้ การใช้ชั่วคราวในปลั๊กอินและธีมของคุณนั้นง่ายมากและเพิ่มโค้ดพิเศษเพียงไม่กี่บรรทัด เมื่อใช้ในสถานการณ์ที่เหมาะสมเช่นการสืบค้นฐานข้อมูลแบบยาวหรือข้อมูลที่ประมวลผลที่ซับซ้อนสามารถช่วยประหยัดเวลาในการโหลดบนไซต์ของคุณได้เป็นวินาที