多站点插件的“全局”设置页面


24

我正在研究一个将安装在多站点实例中的插件。

如何创建仅在“网络管理员”级别可见的单个设置页面-我所看到的大多数指南都与标准博客级别的插件有关。信息的任何链接都将很有用,否则我将最终遍历站点范围的标签以了解其工作情况。

[更新]

像sitewide_tags用途的外观add_site_optionget_site_optionupdate_site_option,而这些功能使用wp_sitemeta。但是,据我所知,不支持register_setting,add_setting等,因此您必须手动获取和设置选项。

Answers:


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表中

  • 我认为Settings API在博客级别起作用-因此使用选项表,而不是sitemeta。因此,您不能在网络级别使用选项组之类(如果我错了,请发表评论

0

好吧,我最近也面临着同样的需求,但是也不知道答案。虽然不是明确回答您的问题,但替代方法是仅在“主”博客的选项下创建选项页面,然后检查是否启用了多站点。

这不是理想的方式,但是(如果像我一样)您只是在创建一个供自己使用的内部插件,那么它是可行的。它还具有一个优点,即管理页面的所有常用功能均可用-全局网络管理页面上下文中尚未提供这些功能。


0

当您使用add_submenu_page()add_menu_page()等并且希望设置页面出现在多站点仪表板中时,请考虑使用network_admin_menu挂钩而不是admin_menu

例:

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

        ...
    )
}

要保存设置,可以使用network_admin_edit_{ACTION}动作挂钩。

参考:https : //rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.