如何创建仅在“网络管理员”级别可见的单个设置页面-我看到的大多数指南都与标准博客级别的插件有关。任何指向信息的链接都将很有用,否则我将最终浏览站点范围的标签以了解其工作情况。
add_site_option
,get_site_option
和update_site_option
,这些函数使用wp_sitemeta。但是,据我所知,不支持register_setting,add_setting等,因此您必须手动获取和设置选项。 #1 楼
作为参考要创建网络或全局设置,您需要执行以下操作
添加设置页面
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。就像在网络一级一样(如果有错,请发表评论)
#2 楼
好吧,我最近也面临着同样的需求,但是也不知道答案。虽然不是明确回答您的问题,但替代方法是仅在“主”博客的选项下创建选项页面,然后检查是否启用了多站点。 ),您只是在创建一个内部插件供自己使用,它是可行的。它还具有一个优点,即管理页面的所有常用功能均可用-它们在全局网络管理页面上下文中尚未提供。#3 楼
当您使用add_submenu_page()
,add_menu_page()
等并且希望设置页面出现在多站点仪表板中时,请考虑使用network_admin_menu
挂钩而不是admin_menu
示例: br />要保存设置,可以使用
network_admin_edit_{ACTION}
操作钩。参考:https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html
#4 楼
如果您只是想在Network Admin区域中显示菜单项,那么对于主博客站点(博客ID 1),您可以将表单设置为此HTML,以保存到普通的Blog 1选项(但也可以显示设置页面)从“多站点”区域):<form method="post" action="<?php echo admin_url('/options.php'); ?>">
当您输出设置页面的表单时。设置不会被任何通知-设置会被更新。