是否限制访问wp-admin区域?

时间:2011-04-18 作者:José Pablo Orozco Marín

我必须检查或比较$pagenow的哪些操作或筛选器?

在管理区域,我需要让非管理和编辑器用户只访问:

index.php (dashboard)
upload.php (attachments management)
media.php (attachments management)
media-new.php (attachments management)
提前谢谢。

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

这取决于您是否要将用户重定向到您应该使用的init 钩子,因为在该钩子之前没有发送输出或标头。或者,如果您想显示一条漂亮的“您没有访问此页面的权限”消息,则可以使用wp_head 行动挂钩:

//display meassage
add_action(\'admin_head\',\'my_restrict_access\');
function my_restrict_access_meassage(){
    global $pagenow;
    if ($pagenow == \'upload.php\' && !current_user_can( \'upload_files\' )){
        echo \'<div class="wrap"><br />
            <div id="message" class="error">You Dont have the right permissions to access this page</div>
        </div>\';
        exit();
    }
}
//or redirect
add_action(\'init\',\'my_restrict_redirect\');
function my_restrict_redirect(){
    global $pagenow;
    if (!is_admin())
        return \'\';
    if ($pagenow == \'upload.php\' && !current_user_can( \'upload_files\' )){
        wp_redirect( home_url() );
        die();
    }
}

SO网友:Marek Tuchalski

我建议成员插件。它允许您创建新的用户组,并定义他们对wp admin中几乎每个页面的访问权限。您可以在此处找到:http://wordpress.org/extend/plugins/members/

结束