2016-03-15 180 views
0

我想在wordpress中创建一个用户只能访问WordPress的几个页面,没有别的,这个用户可以编辑,删除,更新和压缩任何东西或cutomize页允许他只有没有访问任何其他的事情在WordPress的,因为我已经尝试了很多插件,如: UAM用户访问经理 新闻许可证核心 角色挖掘 但他们不是根据我的需要或可能我不是充分利用它们。任何帮助,将不胜感激。我也试图通过从后端代码来创建用户,但没能尽早正确地完成它,请提供任何培训相关的帮助尽可能: 我已创建的角色,通过这样的:用户能力限制访问特定页面只在wordpress

$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 
    ) 
); 
if (null !== $result) { 
    echo 'Yay! New role created!'; 
} 
else { 
    echo 'Oh... the basic_contributor role already exists.'; 
} 

..... .........

function add_roles_on_plugin_activation() { 
     add_role('custom_role', 'Custom Subscriber', array('read' => true, 'level_0' => true)); 
    } 
    register_activation_hook(__FILE__, 'add_roles_on_plugin_activation'); 

但它并没有帮助我太多..

+0

你希望用户从默认的岗位类型或自定义后类型的某些网页和帖子受到限制? –

+0

我希望它在默认的帖子类型.. –

+0

页面和帖子已经创建我只想要一个用户只访问那些我希望他只能访问和修改.. –

回答

0

我刚安装并试用了这个插件:https://wordpress.org/plugins/advanced-access-manager/。它应该为你做诡计。然而,如果你需要先进的东西,你可能需要付出一些代价。

在此插件中,转到设置(AAM),然后在用户角色区域中,按下您想要编辑的角色旁边的齿轮。然后导航到正确的帖子或页面,再次按下齿轮图标并设置您所需的权限。

如果您对自定义代码感兴趣,如果您不想使用插件,我可以提供这些方法 - 请告诉我,并且我可以详细说明如何执行此操作。

编辑:这里的一些代码,你可以把在page.php文件或single.php中

在循环中,因为只有管理员,千万:

<?php 
    // First, specify only to check for permissions on certain pages/posts by ID 
    if(is_page(1,2,3)||is_post(4,5,2)) { 
     if(current_user_can('manage_options')) { ?> 
     <!-- Here, all the the_title(), the_content(), etc should go --> 
     <h1><?php the_title(); ?></h1> 
<?php } else { 
     echo 'Sorry, you don't have permission to view this page.' 
     } 
    } else { ?> 
    <!-- Display everything as normal --> 
     <h1><?php the_title(); ?></h1> 
<?php } ?> 

如果你想测试比其他管理员,然后尝试编辑'moderate_comments',作者'publish_posts',贡献者'edit_posts',订阅者'read'(这进入current_user_can()函数)。请参阅https://codex.wordpress.org/Roles_and_Capabilities

+0

感谢您的帮助,但我有艾尔雷迪试过这个插件,但我需要的功能,我必须购买扩展我不能达到我的要求,这个插件是的,如果你有任何解决方案,除了插件然后请解释我会感激它。 –

+0

添加了一些代码 - 请看一看。它应该在page.php或post.php中,在循环中,如果用户具有正确的权限能力,那么向他们展示帖子,如果没有,则不要。您可以通过添加特定的ID来进一步进行自定义检查,而不是在所有页面上进行检查。 ('is_page()'部分)。使用'is_post()'来检查帖子。 – tempranova

+0

,但是这个函数current_user_can()只是检查用户是否有权访问某个帖子或页面,而不是它没有为用户分配功能? –

0

正如您在评论中所说的,您希望特定帖子被禁用或限制为您要指定的某些用户访问。

这有什么好做的用户的能力,因为用户的能力,要么让用户看到可湿性粉剂管理员或不是一个菜单,

要隐藏默认岗位类型的某些记录,你可以用这个方法:

  1. 创建ACF多选框,包含用户的列表(到要隐藏或提供 )
  2. 选择您想要通过访问这些页面被阻止的人的那些用户。
  3. 现在保存这篇文章还会将用户ID列表保存为该页面的元数据。
  4. 现在通过钩子,你可以检查当前登录的用户ID是否相同,如果他来到那个页面,那么你可以传递一个消息。
  5. 像下面钩:

这需要在functions.php的页面将被粘贴

function id_WPSE_114111() { 

    global $my_admin_page; 
    $screen = get_current_screen(); 
    global $post; 
    $id = $post->ID; 

    $user_id = get_current_user_id(); 

    $blocked_users = get_field('blocked_users',$id); 
    //try to print $blocked_users here and get only the IDs of users in an array like below 
    foreach ($blocked_users as $b_key=>$b_val){ 
    //check how to get ID by printing the $blocked_users above 
    $blocked_users[] = $b_val->ID; 
    } 

    //assuming that blocked users is an array of IDs 
    /* 
    $blocked_users = array(1,2,3,4); 
    */ 

    //then 
    if(in_array($user_id,$blocked_users)){ 
     echo 'Not accessible !!' 
     return; 
    } 

} 

add_action('admin_notices', 'id_WPSE_114111'); 

ACF领域建立

  1. 您也可以下载插件ACF从这里开始http://wordpress.org/plugins/advanced-custom-fields/
  2. 安装之后,您将在wp-admin中找到一个选项作为“自定义字段”
  3. 点击添加新的并创建ACF组,并为其提供标题作为用户检查。
  4. 点击蓝色添加字段按钮,然后提供字段标签,字段名称,在字段类型选择用户,通过说明资讯,请参阅更多的选择
  5. 现在的形象,如果用户在字段类型选择,那么你将获取用户对象列表,当您在检查时获取此字段
  6. 在位置标签下方选择您想要显示此字段的帖子类型,我选择了2:'发布'和'页面'您可以选择更多通过点击添加规则组并添加更多的帖子类型。 (附截图)

enter image description here

+0

请你告诉我应该在哪里创建ACF多选框? –

+0

请参阅编辑答案 –

相关问题