หน้าการตั้งค่า "ส่วนกลาง" สำหรับปลั๊กอินหลายไซต์


24

ฉันกำลังทำงานกับปลั๊กอินที่จะติดตั้งในอินสแตนซ์หลายไซต์

ฉันจะสร้างหน้าการตั้งค่าเดียวที่สามารถมองเห็นได้ในระดับ "ผู้ดูแลเครือข่าย" เท่านั้น - คำแนะนำส่วนใหญ่ที่ฉันเคยเห็นเกี่ยวข้องกับปลั๊กอินระดับบล็อกมาตรฐาน ลิงก์ไปยังข้อมูลใด ๆ จะมีประโยชน์ไม่เช่นนั้นฉันก็จะจบลงด้วยการใช้แท็กไซต์ทั่ว ๆ ไปเพื่อดูว่ามีการทำอะไรบ้าง

[Update]

ดูเหมือนว่าการใช้ sitewide_tags add_site_option, get_site_optionและupdate_site_optionและฟังก์ชั่นการใช้งานเหล่านี้ wp_sitemeta อย่างไรก็ตามจากสิ่งที่ฉันเห็นไม่มีการสนับสนุน register_setting, add_setting ฯลฯ ดังนั้นคุณต้องรับและตั้งค่าตัวเลือกของคุณด้วยตนเอง

คำตอบ:


6

เป็นข้อมูลอ้างอิง

ในการสร้างเครือข่ายหรือการตั้งค่าส่วนกลางคุณจะต้องทำสิ่งต่อไปนี้

  • เพิ่มหน้าการตั้งค่า

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • เพิ่มตัวเลือกระดับโลก

    add_site_option($key,$value)
  • อัปเดตตัวเลือกระดับโลก

    update_site_option($key,$value)
  • รับตัวเลือกไซต์

    get_site_option($key)

การตั้งค่าส่วนกลางจะถูกบันทึกลงในsitemetaตาราง (การตั้งค่าบล็อกแต่ละรายการจะถูกบันทึกลงใน<blog_id>_optionsตาราง

  • ฉันคิดว่าฟังก์ชั่นการตั้งค่า APIที่ระดับบล็อก - ดังนั้นควรใช้ตารางตัวเลือกไม่ใช่ sitemeta ดังนั้นคุณไม่สามารถใช้กลุ่มตัวเลือกและสิ่งที่คล้ายกันในระดับเครือข่าย ( โปรดแสดงความคิดเห็นหากฉันทำสิ่งนี้ผิด )

0

เมื่อเร็ว ๆ นี้ฉันเผชิญกับความต้องการเดียวกัน แต่ไม่ทราบคำตอบเช่นกัน แม้ว่าจะไม่ใช่คำตอบสำหรับคำถามของคุณอย่างชัดเจน แต่อีกทางเลือกหนึ่งคือเพียงสร้างหน้าตัวเลือกภายใต้ตัวเลือกของบล็อก 'หลัก' และตรวจสอบว่ามีการเปิดใช้งานไซต์หลายไซต์หรือไม่

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


0

เมื่อคุณใช้add_submenu_page(), add_menu_page()ฯลฯ และคาดว่าหน้าการตั้งค่าที่จะปรากฏในแดชบอร์ด MultiSite การของคุณให้พิจารณาโดยใช้network_admin_menuเบ็ดแทนadmin_menu

ตัวอย่าง:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

หากต้องการบันทึกการตั้งค่าคุณสามารถใช้network_admin_edit_{ACTION}action hook

การอ้างอิง: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

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