You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术求助:让WordPress插件NS Cloner对所有用户可见而非仅网络管理员

让NS Cloner在WordPress多站点所有用户后台显示的解决方案

NS Cloner默认只对网络管理员开放访问权限,要让站点管理员、编辑等其他用户也能在后台看到并使用它,咱们可以通过两种方法实现,下面详细说明:

方法一:直接调整插件权限配置(注意:插件更新会覆盖修改)

  1. 找到NS Cloner插件的核心文件,一般路径是ns-cloner-site-copier/ns-cloner.php
  2. 定位到注册网络菜单的代码段,通常长这样:
    add_action('network_admin_menu', 'ns_cloner_add_network_menu');
    function ns_cloner_add_network_menu() {
        add_submenu_page('sites.php', 'NS Cloner', 'Clone Site', 'manage_network', 'ns-cloner', 'ns_cloner_render_clone_page');
    }
    
  3. 这里的manage_network是网络管理员专属权限,你可以把它改成站点级权限,比如manage_options(对应站点管理员),或者edit_posts(对应编辑角色),根据你的需求来。修改后代码如下:
    add_action('network_admin_menu', 'ns_cloner_add_network_menu');
    function ns_cloner_add_network_menu() {
        add_submenu_page('sites.php', 'NS Cloner', 'Clone Site', 'manage_options', 'ns-cloner', 'ns_cloner_render_clone_page');
    }
    
  4. 别忘了同步调整克隆操作的权限检查:找到插件里判断用户权限的current_user_can('manage_network')代码,同样替换成你选的权限(比如current_user_can('manage_options'))。

方法二:用自定义钩子实现(推荐,避免插件更新丢失修改)

如果不想改动插件本身的代码,咱们可以借助WordPress的钩子来扩展权限:

在你的子主题functions.php文件里,或者新建一个自定义插件,添加以下代码:

// 给站点管理员开放NS Cloner的访问权限
add_filter('user_has_cap', 'ns_cloner_extend_access_permission', 10, 3);
function ns_cloner_extend_access_permission($allcaps, $cap, $args) {
    // 当用户请求NS Cloner的访问权限时,允许站点管理员通过
    if ($cap[0] === 'manage_network' && $args[0] === 'ns-cloner') {
        if (current_user_can('manage_options')) {
            $allcaps['manage_network'] = true;
        }
    }
    return $allcaps;
}

// 在站点管理员后台添加NS Cloner菜单入口
add_action('admin_menu', 'ns_cloner_add_site_admin_menu_entry');
function ns_cloner_add_site_admin_menu_entry() {
    if (is_multisite() && current_user_can('manage_options')) {
        add_submenu_page('sites.php', 'NS Cloner', 'Clone Site', 'manage_options', 'ns-cloner', 'ns_cloner_render_clone_page');
    }
}

这段代码的作用:

  • 通过user_has_cap钩子,给拥有manage_options权限的用户临时赋予访问NS Cloner的权限
  • 通过admin_menu钩子,在站点管理员的后台菜单里添加NS Cloner的入口

额外提醒

  • 优先选择钩子方法,插件更新后不用重复修改
  • 权限选择要谨慎:如果只想让站点管理员使用就用manage_options,如果要开放给编辑就用edit_posts
  • 修改前记得备份网站,避免出现权限混乱问题

内容的提问来源于stack exchange,提问作者Fabio Maximo Chagas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:01