我有一个多站点网络,希望保护/wp admin/ms delete站点。使其不执行。我们只想从命令行管理站点删除。
目前,我已经在顶部添加了对wp\\u die()的调用,但我更愿意在插件中处理这个问题,而不是对wp核心文件进行任何更改。
在插件中实现这一点的最佳方法是什么?
我有一个多站点网络,希望保护/wp admin/ms delete站点。使其不执行。我们只想从命令行管理站点删除。
目前,我已经在顶部添加了对wp\\u die()的调用,但我更愿意在插件中处理这个问题,而不是对wp核心文件进行任何更改。
在插件中实现这一点的最佳方法是什么?
另一种选择是查看挂钩map_meta_cap 并删除用户的以下功能:delete_site
. 如果您想要允许delete_site
然后您可以允许该功能。
你说得对,editing core is a no-no.
相反,您可以这样做。
add_action( \'current_screen\', \'wpse242553_no_delete_site_screen\' );
function wpse242553_no_delete_site_screen() {
// Check to see if we\'re using the CLI client. If so, bail out.
if ( \'cli\' == php_sapi_name() ) {
return;
// I\'m not sure this is strictly necessary.
}
if ( \'ms-delete-site\' == get_current_screen()->base ) {
// You can add whatever message you like here,
// or even use wp_safe_redirect() to go elsewhere.
wp_die( \'Sorry, we only delete sites from the command line.\' );
}
}
把它放在Must Use plugin 将其应用于网络中的每个站点。current_screen
hookget_current_screen()
php_sapi_name()
(我查过了,如果你使用wp-cli
, 它返回cli
作为SAPI名称)我需要做的是只重定向我的多站点安装中的一些站点,以使用HTTP而不是HTTPS。目前我的设置是,每个站点都重定向到HTTPS,但我似乎不知道如何强制只有一些站点通过HTTP。我将如何实现这一点?