ตัวแปรตัวเลือกทั้งหมดถูกดึงมาจากฐานข้อมูลและโหลดไปยังแคชในแต่ละคำขอหรือไม่
ตัวแปรตัวเลือกทั้งหมดถูกดึงมาจากฐานข้อมูลและโหลดไปยังแคชในแต่ละคำขอหรือไม่
คำตอบ:
ใช่แล้ว เมื่อมีการget_option
โทร WordPress จะเรียกใช้ฟังก์ชั่นwp_load_alloptions
ซึ่งจะทำการคัดลอกแคชของตัวเลือกที่โหลดอัตโนมัติทั้งหมดหรือโหลดตัวเลือกทั้งหมดเหล่านั้นลงในแคช จากนั้นwp_load_alloptions
ส่งกลับอาร์เรย์ของตัวเลือกที่โหลดอัตโนมัติทั้งหมด หากตัวเลือกของคุณถูกโหลดอัตโนมัติ (ระบุไว้เมื่อคุณใช้add_option
ฟังก์ชั่น) มันจะเป็นส่วนหนึ่งของอาร์เรย์นี้และรับคืน
หากตัวเลือกของคุณไม่โหลดอัตโนมัติ WordPress จะมองหาแคชโดยเฉพาะสำหรับตัวเลือกนั้นและคืนค่าถ้ามี หากพลาดนั่นคือทางเลือกสุดท้ายคือไปที่ฐานข้อมูลดึงค่าตั้งค่าแคชแล้วส่งคืน
สุดท้ายหากไม่มีทางเลือกอื่นที่พบในทุก (เช่น. ชื่อตัวเลือกไม่ถูกต้อง), ร้านค้า WordPress notoptions
ว่าชื่อของตัวเลือกในอาร์เรย์ที่เก็บไว้ชั่วคราวที่เรียกว่า หากมีการโทรไปยังตัวเลือกที่ไม่ตามมา WP จะตรวจสอบอาร์เรย์ตัวเลือกก่อนดังนั้นจึงไม่ต้องเสียเวลาตรวจสอบสิ่งที่ไม่มี
หากคุณกังวลเกี่ยวกับการโทรget_option
หลายครั้งต่อการโหลดหน้าเว็บ WordPress จะแคชค่าตัวเลือกหลังจากการget_option
โทรครั้งแรกโดยไม่คำนึงว่าจะมีการโหลดอัตโนมัติหรือไม่
ลองดูแหล่งข้อมูลget_option
เพื่อดูว่าเกิดอะไรขึ้น
ไม่มี
เฉพาะตัวเลือกที่โหลดโดยเฉพาะเมื่อตั้งค่า autoload เป็นจริงเท่านั้น
ดูhttp://codex.wordpress.org/Function_Reference/add_option
ดังนั้นหากเป็นตัวเลือกที่จำเป็นสำหรับทุกหน้าเมื่อคุณเพิ่มลงใน db ให้ตั้งค่า autoload = true
หลังจากนั้นเพียงใช้ get_option ตามปกติ - wp จะจัดการกับการแคชเป็นต้น
ใช่,
ไม่จำเป็นต้องตั้งค่า autoload เป็นใช่ / จริง มันถูกตั้งค่าเป็นใช่โดยค่าเริ่มต้น: http://codex.wordpress.org/Function_Reference/add_option - พารามิเตอร์ฟังก์ชันสุดท้าย ($ autoload):
ตัวเลือกนี้จะถูกโหลดโดยอัตโนมัติโดยฟังก์ชั่น wp_load_alloptions () (ใส่ตัวเลือกลงในแคชวัตถุในการโหลดหน้าแต่ละหน้า) หรือไม่ ค่าที่ถูกต้อง: ใช่หรือไม่ เริ่มต้น: ใช่
แม้ว่าคุณจะตั้งค่าเป็นไม่ก็ตามตัวเลือกจะไม่ถูกแคช