参考Settings API in Multisite - Missing update message
It states that:
对于网络选项页,正确的表单操作URL为:
wp管理员/网络/编辑。php?action=您的\\u option\\u名称
注意:前面没有“/”
Okay. Let\'s try it:
一
http://yourdomain.com/wp-admin/network/edit.php?action=your_option_page
零五
http://yourdomain.com/wp-admin/network/wp-admin/network/edit.php?action=your_option_page
Now, adding a \'/\' in front:
<form method="post" action="/wp-admin/network/edit.php?action=your_option_page">
Submits the form (correctly) to:
http://yourdomain.com/wp-admin/network/edit.php?action=your_option_page
That\'s right in most cases, I think?
然而,我从插件的一些用户那里得到了反馈,他们在提交选项表单时得到了以下信息:
找不到请求的URL/wp admin/network/edit。在此服务器上找不到php。
这是因为该用户的服务器配置不正确,还是我应该坚持使用以下表单操作URL以使其适用于不同的服务器路径:
<form method="post" action="edit.php?action=your_option_page">
Form still submits to correct URL:
http://yourdomain.com/wp-admin/network/edit.php?page=your_option_page
后一种形式的动作URL在wordpress支持的所有安装路径中都有效吗?(具有子域、目录路径等)。不同的web服务器如何:Apache、Nginx、IIS
您的域。comyourdomain。com/wordpress/subdomain。您的域。comsubdomain/您的域。com/wordpress/
最合适的回答,由SO网友:birgire 整理而成
在网络管理员中引用URL时,应考虑network_admin_url()
. 核心功能admin_url()
对于非多站点设置。
所以试试这个,用add_query_arg
就像toscho一样uses 在回答中,链接到:
echo esc_url(
add_query_arg(
\'action\',
\'your_option_name\',
network_admin_url( \'edit.php\' )
)
);
而不是使用可能错误的安装路径假设对其进行硬编码。
这里,我们转义输出以在HTML动作属性中使用。