Answers:
对于网络选项页面,正确的表单操作URL为:
wp-admin/network/edit.php?action=your_option_name
然后,您必须注册一个回调:
add_action(
'network_admin_edit_your_option_name',
'your_save_network_options_function'
);
在该回调函数中,检查$_POST
数据,准备值,然后保存它们:
update_site_option( $this->option_name, $this->option_values );
然后,您必须在没有其他帮助的情况下创建重定向:
// redirect to settings page in network
wp_redirect(
add_query_arg(
array( 'page' => 'your_options_page_slug', 'updated' => 'true' ),
(is_multisite() ? network_admin_url( 'admin.php' ) : admin_url( 'admin.php' ))
)
);
exit;
在选项页面上,检查$_GET['updated']
,如果找到该参数,请添加管理员通知。
我一直在使用@toscho的答案,效果很好,但是在某些wordpress安装路径中,硬编码的表单操作URL无法使用。@birgire在此说明如何构建正确的URL:
在network-admin中引用URL时,应考虑network_admin_url()。核心功能,对于非多站点设置,该功能将回退到admin_url()。
echo esc_url(
add_query_arg(
'action',
'your_option_name',
network_admin_url( 'edit.php' )
)
);