隐藏选项卡伙伴为访问者,而不是登录用户按下配置文件

时间:2017-10-24 作者:AKNL

我下面的代码就像一个魔咒,可以让登录用户隐藏某些选项卡:

function bpfr_hide_activity_nav() {
    if( !current_user_can( \'subscriber\' ) ){
        return;
    } 
    bp_core_remove_nav_item( \'media\' );
    bp_core_remove_nav_item( \'forums\' );
    bp_core_remove_nav_item( \'orders\' );
    bp_core_remove_nav_item( \'activity\' );
}
add_action( \'bp_ready\', \'bpfr_hide_activity_nav\' );
但对于访问者/注销用户,这些选项卡在角色设置为Subscriber的成员配置文件中仍然可见。我的代码基于current\\u user\\u can,如何将其转换为profile-I-see-on-page-has-to-be-impact选项?

希望有人能给我指出正确的方向。谢谢

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

我想你要找的功能是bp_displayed_user_id(). 这将获取当前正在显示其配置文件的用户的ID。

那么,你可以check their role like this:

$user = get_userdata( bp_displayed_user_id() );
if ( ! in_array( \'subscriber\', (array) $user->roles ) ) {
    return;
} 
您也可以使用user_can(), 但最好是avoid using role names with user_can() and current_user_can(), 因为它们实际上是为能力而不是角色而设计的。事实上,在这种情况下,您最好不要检查用户角色。最好为某些角色添加自定义功能,如\'extended_bp_profile\', 然后检查一下。

结束

相关推荐

BuddyPress、BBPress-deqeue BP、BBP CSS和Get Group Members Count

我一直在为buddypress、bbpress定制我的主题。我发现了两个您需要知道的问题。我正在使用更少的文件并删除了原始css文件。/** Remove original bp css **/ function dequeue_buddypress() { wp_dequeue_style(\'bp-legacy-css\'); wp_dequeue_style(\'bbp-default\'); } add_action(\'wp_enqueue_scripts