基于用户正在查看的当前配置文件的用户角色的条件-BuddyPress

时间:2013-02-11 作者:LadyCourage

我使用的是BuddyPress,需要特定的代码块才能显示在用户角色商店所有者配置文件中。我将把它放在member\\u标题中。php,所以它只是一个模板文件。

我已经挖了很长一段时间了,但似乎还没弄明白。我找到了一种针对当前用户角色的方法,但这使得它显示在每个人的个人资料中,作为店主用户角色的用户。

我知道我需要一个条件,但我似乎找不到正确的条件。。。不知怎么的,我错过了什么吗?

非常感谢!!

Edit:

我改变了主意,将这段代码完全移动到一个单独的配置文件页面。我在配置文件菜单中创建并链接了页面。因此,我需要的条件是根据正在查看的配置文件的用户角色显示此菜单项。

以下是在每个用户页面上都能正常工作并显示的代码:

// Set up Custom BP navigation
function my_setup_nav() {    
   global $bp;
      bp_core_new_nav_item( array(
            \'name\' => __( \'Calendar\', \'buddypress\' ),
            \'slug\' => \'calendar\',
            \'position\' => 20,
            \'screen_function\' => \'calendar_template\' 
      ) );

      // Change the order of menu items
      $bp->bp_nav[\'messages\'][\'position\'] = 100;
}

add_action( \'bp_setup_nav\', \'my_setup_nav\' );
这是我一直在玩的代码,但它会导致菜单项在任何地方都不显示。

// Set up Custom BP navigation
function my_setup_nav() {   
   if(user_can($user->ID, "store_owner")) {   
   global $bp;
      bp_core_new_nav_item( array(
            \'name\' => __( \'Calendar\', \'buddypress\' ),
            \'slug\' => \'calendar\',
            \'position\' => 20,
            \'screen_function\' => \'calendar_template\' 
      ) );

      // Change the order of menu items
      $bp->bp_nav[\'messages\'][\'position\'] = 100;
}
}

add_action( \'bp_setup_nav\', \'my_setup_nav\' );
我的网站是:http://www.pureplayhaven.com 用户“sample”是“Store Owner”用户。

非常感谢!!

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

我认为您需要检查显示的用户是否具有该角色,请尝试替换$user->ID 具有bp_displayed_user_id():

function my_setup_nav() {   
   if ( user_can( bp_displayed_user_id(), \'store_owner\' ) ) {
       // ... rest of your code
   }
}

结束

相关推荐

子网站主题神秘人在主网站上被BuddyPress取代

我在主站点安装了buddypress的多站点安装。在buddypress主题中,我可以使用自定义buddypress主题覆盖默认的“神秘人”头像。我只是有一个包含替换“神秘人”的图像文件夹。jpg的头像。然而,对于网络上的其他wordpress站点,这种技术不起作用。我已经研究了这里提出的解决方案:Set default avatar network-wide但这些答案似乎与主站点上启用的buddypress不起作用。buddypress似乎以某种方式干扰了非buddypress站点获取其头像的方式,因为