多站点自定义角色 - 默认应用?

时间:2014-03-28 20:24:24

标签: wordpress networking roles

问题:

如何创建自定义应用于网络上新网站的自定义角色?

我正试图大大减少新创建的网站的自由度。

以下是一个例子:

add_role('basic_user', 'Basic User', array(
    'read' => true, // True allows that capability
    'edit_posts' => true,
    'delete_posts' => false, 
));

我原本以为只需将此行添加到我的网络插件(到激活挂钩的进程)就足以在网络站点中看到此角色。但事实并非如此。

我知道会员插件,但我想完全控制这个功能,而不依赖于插件。

1 个答案:

答案 0 :(得分:1)

对于此类网络自定义设置,我们使用 Must Use Plugins 创建文件夹/wp-content/mu-plugins/并在那里删除一个PHP文件(它甚至不需要插件头;并且没有激活/停用,它始终处于活动状态):

<?php
/**
 * Plugin Name: Basic contributor role
 * Plugin Description: Network wide default role
 */
add_action( 'init', function() 
{
    $result = add_role(
        'basic_contributor',
        __( 'Basic Contributor' ),
        array(
            'read'         => true,  // true allows this capability
            'edit_posts'   => true,
            'delete_posts' => false, // Use false to explicitly deny
        )
    );
}); 

add_role() documentation page中,提到了这种方法:在init中添加mu-plugin操作。