ความแตกต่างระหว่าง get_site_option และ get_blog_option คืออะไร


9

ฉันพยายามที่จะเข้าใจความแตกต่างระหว่างget_site_option ()และget_blog_option ()

มีบล็อกและเว็บไซต์ของสองสิ่งที่แตกต่างกันอย่างไร ขอโทษถ้าคำถามนี้ดูเหมือนว่าพื้นฐาน แต่เมื่ออ้างถึงเว็บไซต์ WordPress ฉันมักจะใช้คำทั้งสองอย่างหลวม ๆ (หมายถึงสิ่งเดียวกัน) ตอนนี้ฉันสงสัยว่ามีความแตกต่างหรือไม่?

คำตอบ:


15

get_option()ส่งคืนตัวเลือกสำหรับบล็อกปัจจุบัน

ในการติดตั้งไซต์เดียวบล็อกปัจจุบันเป็นบล็อกเดียว ดังนั้นรับget_option()คืนตัวเลือกสำหรับมัน


get_site_option()ใช้เพื่อดึงข้อมูลตัวเลือกทั้งเครือข่าย หมายความว่าคุณสามารถรับตัวเลือกเดียวกันได้จากทุกไซต์ในเครือข่าย

เมื่อฟังก์ชั่นนี้จะใช้ในการติดตั้งเดียวก็ปกติget_option()ผลตอบแทนในสิ่งเดียวกันของ ค่าที่อาจมีการเปลี่ยนแปลงเพราะตะขอกรองทริกเกอร์ที่ยังไม่ได้เรียกโดยget_site_option()get_option()

โปรดทราบว่าเมื่อ$wpdb->optionsตารางเป็นบล็อกเฉพาะตัวเลือกทั่วทั้งเครือข่ายจะถูกเก็บไว้ใน$wpdb->sitemetaตารางนั่นคือเฉพาะการติดตั้งหลายไซต์


get_blog_option()เป็นเพียงในสามฟังก์ชั่นที่ไม่ได้รับชื่อตัวเลือกที่เป็นอาร์กิวเมนต์ที่ 1 แต่ข้อโต้แย้งที่ 1 $blog_idของมันคือ

ในความเป็นจริงมันถูกใช้ในการติดตั้งหลายไซต์เพื่อดึงตัวเลือกจากบล็อกเฉพาะที่มี ID เป็นที่รู้จัก

ฟังก์ชั่นนี้ทำอะไร:

switch_to_blog( $blog_id );
$value = get_option( $option, $default );
restore_current_blog();

return $value;

หาก$blog_idเป็นเช่นเดียวของบล็อก ID ปัจจุบัน WordPress เพียงข้ามส่วนหนึ่งและเพียงแค่โทรswitch_to_blogget_option()

ฟังก์ชันนี้ถูกกำหนดในไฟล์wp-includes/ms-blogs.phpที่โหลดสำหรับการติดตั้งแบบหลายไซต์เท่านั้นดังนั้นจึงget_blog_option()ไม่ได้กำหนดไว้ในการติดตั้งไซต์เดียว


6

get_site_option()- รับตัวเลือกทั้งเครือข่าย ตัวเลือกนี้มักจะถูกเพิ่มในส่วนการตั้งค่าผู้ดูแลเครือข่ายของการตั้งค่าหลายไซต์ หากฉันมี 50 ไซต์มันเป็นความเจ็บปวดที่จะไปถึง 50 ไซต์ที่แตกต่างกันและตั้งค่าตัวเลือกเดียวกัน แต่ฉันสามารถตั้งค่าตัวเลือกหนึ่งครั้งและนำไปใช้กับเครือข่ายสำหรับไซต์ทั้งหมดได้ ดูhttp://codex.wordpress.org/Function_Reference/get_site_option

get_blog_option()- ช่วยให้คุณได้รับค่าของตัวเลือกสำหรับไซต์เฉพาะ ตัวอย่างหนึ่งอาจได้รับค่าของตัวเลือกเฉพาะผู้ใช้สำหรับแต่ละไซต์ ดังนั้นฉันจะได้รับเว็บไซต์ทั้งหมดที่ผู้ใช้เป็นเจ้าของวนรอบรายการรหัสไซต์และใช้get_blog_option()ผ่านblog_idชื่อตัวเลือกและและกลับผลลัพธ์ มันเป็นฟังก์ชั่นอำนวยความสะดวกที่ทำหน้าที่ดังต่อไปนี้:

switch_to_blog( $id ); $value = get_option( $option_name ); restore_current_blog();

ดูhttp://codex.wordpress.org/Function_Reference/get_blog_option

tl; dr: get_site_option()รับค่าเครือข่ายกว้างget_blog_option()รับค่าเฉพาะสำหรับไซต์ที่กำหนดโดยไม่จำเป็นต้องสลับไปที่ไซต์นั้นด้วยตัวคุณเองก่อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.