显示特定角色的特殊后端内容

时间:2012-08-05 作者:Anthony Myers

我想我已经很接近我所需要的了,但只需要一点方向。我试图在后端向特定角色的用户显示一个内容小部件。现在,我正在与一个角色为的用户进行测试subscriber.

This works perfect :

<?php 
    // Add a widget to the WordPress dashboard
    function wpc_dashboard_widget_function() 
    {
        // Do whatever you want to render in here
        echo \'<div>
        <h3>Special Offer One</h3>
        <div>Special Offer Text will go here!</div>
        </div>\';
    }
    function wpc_add_dashboard_widgets() 
    {
        wp_add_dashboard_widget(\'wp_dashboard_widget\', \'Special Offers Just For   
        Vendors\', \'wpc_dashboard_widget_function\');
    }
    add_action(\'wp_dashboard_setup\', \'wpc_add_dashboard_widgets\' );
?>
但这向所有用户都表明了这一点。我只想展示给某个角色,并试图使用:

if (!current_user_can(\'subscriber\')):
endif;
同时,它只是把事情搞砸了,而且这个特殊的小部件根本不会为任何人显示。有什么想法吗?

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

可能的原因-

  1. current_user_can() 函数需要输入capabilityuser role, 虽然它有时会工作,但我们不应该使用用户角色作为此函数的输入subscriber 对象到函数,这是我们在Wordpress上可能具有的最低角色。这就是为什么!current_user_can(\'subscriber\') 使其对所有人都不可用Capabilities Vs Roles 表中,使用该表确定可以使用哪个功能将其隐藏或显示给特定角色。将框显示给Editor 您可以使用功能moderate_comments .

    E.g -   if ( current_user_can (\'moderate_comments\') ) 
            {
                //To see this visible you should have at-least Editor privileges
            } 
    
    注意-我建议使用wp_get_current_user() 作用这可用于获取用户角色并显示特定内容。该内容将仅对该用户可用,即使具有更高权限的用户也无法看到它。

       // Add a widget to the WordPress dashboard
        function wpc_dashboard_widget_function() 
        {
            global $wp_roles;
            $current_user = wp_get_current_user();
            $roles = $current_user->roles;
            $role = array_shift($roles);
    
            if($role == \'administrator\')
            {
                // This is only for Admins
                echo \'<div><h4>Special Offer One</h4><div>Special Offer Text will go here!</div></div>\';
            }
        }
        function wpc_add_dashboard_widgets() 
        {
            wp_add_dashboard_widget(\'wp_dashboard_widget\', \'Special Offers Just For   
            Vendors\', \'wpc_dashboard_widget_function\');
        }
        add_action(\'wp_dashboard_setup\', \'wpc_add_dashboard_widgets\' );
    

结束

相关推荐