从用户隐藏(某些)WordPress插件的最简单方法?

Vol*_*mar 2 wordpress wordpress-plugin

我正在使用WordPress让我的用户创建自己的网站/博客.我有一个设置,我正在通过一些特殊的用户角色和标准插件克隆给所有用户.

但是,某些插件不应由用户更改或取消激活.

他们以任何方式选择允许使用哪些插件的不同用户角色?或一个简单的方法来隐藏插件页一些插件,但仍然让他们工作正常?

也许有一些插件可以帮我做到这一点?

spu*_*ata 7

您可以编写一个插件,使用"all_plugins"过滤器挂钩从您不希望为特定用户显示的阵列插件中删除.像这样的东西:

$plugin_credentials = array(
    'bob' => array(
            'Hello Dolly' => 1
    ),
    'jim' => array(
            'Akismet' => 1,
            'Hello Dolly' => 1,
    ),
    'admin' => "**ALL**"
);

function plugin_permissions($plugins)
{
        global $current_user, $plugin_credentials;

        $username = $current_user->user_login;

        if ($plugin_credentials[$username] == "**ALL**")
                return $plugins;

        $viewable_plugins = array();

        foreach ($plugins as $plugin) {
                if (isset($plugin_credentials[$username]) &&
                        isset($plugin_credentials[$username][$plugin['Name']]) &&
                        $plugin_credentials[$username][$plugin['Name']] == 1) {

                        array_push($viewable_plugins, $plugin);
                }
        }
        return $viewable_plugins;
}

add_filter('all_plugins', 'plugin_permissions');
Run Code Online (Sandbox Code Playgroud)

管理插件本身的用户权限并不理想,但它可能是最简单的.您可以扩展这个想法,以创建管理页面,以便在某个地方管理数据库表中的用户及其可查看插件.