Hide/display BuddyPress 工具栏中的 link 基于用户角色

Hide/display a link in BuddyPress toolbar based on user role

如果用户具有特定角色,我如何 hide/display 在 BuddyPress 工具栏中 link?

function your_bp_admin_bar_add() {
  global $wp_admin_bar, $bp;

  if ( !bp_use_wp_admin_bar() || defined( 'DOING_AJAX' ) )
    return;

  $user_domain = bp_loggedin_user_domain();

  if (current_user_can('lp_teacher')) {

        $wp_admin_bar->add_menu( array(
        'parent'  => $bp->my_account_menu_id,
        'id'      => 'my-create-course',
        'title'   => __( 'Create Course', 'your-plugin-domain' ),
        'href'    => trailingslashit( 'https://mywebsite.com/wp-admin/post-new.php?post_type=lp_course&tab=course_settings' ),
        'meta'    => array( 'class' => 'menupop' )
      ) );
  }

  $wp_admin_bar->add_menu( array(
    'parent'  => $bp->my_account_menu_id,
    'id'      => 'my-account-dogs',
    'title'   => __( 'Become an Instructor', 'your-plugin-domain' ),
    'href'    => trailingslashit( 'https://mywebsite.com/become-a-teacher-2/' ),
    'meta'    => array( 'class' => 'menupop' )
  ) );
}
add_action( 'bp_setup_admin_bar', 'your_bp_admin_bar_add', 300 );

我不明白为什么即使登录用户是讲师也只显示Become an Instructor。它应该显示 Create Course.

I don't understand why it only displays Become an Instructor even when the logged-in user is an instructor.

您确定讲师的角色/能力是lp_teacher吗?

如果您只想向教师显示 Create Course,请尝试添加 else

if (current_user_can('lp_teacher')) {

    $wp_admin_bar->add_menu( array(
        'parent'  => $bp->my_account_menu_id,
        'id'      => 'my-create-course',
        'title'   => __( 'Create Course', 'your-plugin-domain' ),
        'href'    => trailingslashit( 'https://mywebsite.com/wp-admin/post-new.php?post_type=lp_course&tab=course_settings' ),
        'meta'    => array( 'class' => 'menupop' )
    ) );

} else {

    $wp_admin_bar->add_menu( array(
        'parent'  => $bp->my_account_menu_id,
        'id'      => 'my-account-dogs',
        'title'   => __( 'Become an Instructor', 'your-plugin-domain' ),
        'href'    => trailingslashit( 'https://mywebsite.com/become-a-teacher-2/' ),
        'meta'    => array( 'class' => 'menupop' )
    ) );

}