以前端不同风格的“管理员”为目标

时间:2014-05-04 作者:Zach Russell

我先解释一下我想做什么。我正在为客户构建一个内部网。他们不希望员工能够编辑他们的个人资料或上传头像,只是“管理员”应该能够做到这一点。要禁用此功能,我将display: none 默认情况下,“编辑配置文件”和“上载化身”按钮。然后,我希望这些内容显示给登录的管理员,以便他们可以编辑配置文件。我没有看到任何主体类添加到登录的管理员用户,所以我想我可以为登录的管理员用户添加一个显示隐藏div的CSS文件。我也在使用WP引擎,我不知道这是否受他们的缓存影响。

我如何才能做到这一点?

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

有几种方法可以做到这一点:

template overloads重载这些文件:

\\bp模板\\bp legacy\\buddypress\\members\\single\\profile\\edit。php

\\bp模板\\bp legacy\\buddypress\\members\\single\\profile\\change avatar

在重载的顶部,执行current_user_can() 选中,然后显示或不显示模板的其余部分。

根据current_user_can() 检查请参见中的过滤器bp_get_displayed_user_nav() 在“bp成员\\ bp成员模板”中。php’

SO网友:Douglas.Sesar

正如我在评论中提到的,您当前使用CSS的方法不会阻止用户在管理区域访问其配置文件页面。

您需要使用创建一组自定义规则wordpress roles and capabilities.

我从bavotasan.com

    add_action( \'admin_init\', \'redirect_non_admin_users\' );
/**
 * Redirect non-admin users to home page
 *
 * This function is attached to the \'admin_init\' action hook.
 */
function redirect_non_admin_users() {
    if ( ! current_user_can( \'manage_options\' ) && \'/wp-admin/admin-ajax.php\' != $_SERVER[\'PHP_SELF\'] ) {
        wp_redirect( home_url() );
        exit;
    }
}

结束