wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_admin_bar_my_account_menu › WordPress Function

Since3.1.0
Deprecatedn/a
› wp_admin_bar_my_account_menu ( $wp_admin_bar )
Parameters:
  • (WP_Admin_Bar) $wp_admin_bar The WP_Admin_Bar instance.
    Required: Yes
Defined at:
Codex:
Change Log:
  • 7.2.0

Adds the "My Account" submenu items.



Source

function wp_admin_bar_my_account_menu( $wp_admin_bar ) {
	$user_id      = get_current_user_id();
	$current_user = wp_get_current_user();

	if ( ! $user_id ) {
		return;
	}

	if ( current_user_can( 'read' ) ) {
		$profile_url = get_edit_profile_url( $user_id );
	} elseif ( is_multisite() ) {
		$profile_url = get_dashboard_url( $user_id, 'profile.php' );
	} else {
		$profile_url = false;
	}

	$wp_admin_bar->add_group(
		array(
			'parent' => 'my-account',
			'id'     => 'user-actions',
		)
	);

	$display_name = $current_user->display_name;
	if ( empty( $display_name ) ) {
		$display_name = $current_user->user_login;
	}

	/* translators: %s: Current user's display name. */
	$howdy = sprintf( __( 'Howdy, %s' ), '<span class="display-name">' . $display_name . '</span>' );

	$user_info  = get_avatar( $user_id, 64 );
	$user_info .= '<span class="howdy">' . $howdy . '</span>';

	if ( $display_name !== $current_user->user_login ) {
		$user_info .= "<span class='username'>{$current_user->user_login}</span>";
	}

	if ( false !== $profile_url ) {
		$user_info .= "<span class='display-name edit-profile'>" . __( 'Edit Profile' ) . '</span>';
	}

	$wp_admin_bar->add_node(
		array(
			'parent' => 'user-actions',
			'id'     => 'user-info',
			'title'  => $user_info,
			'href'   => $profile_url,
		)
	);

	$wp_admin_bar->add_node(
		array(
			'parent' => 'user-actions',
			'id'     => 'logout',
			'title'  => __( 'Log Out' ),
			'href'   => wp_logout_url(),
		)
	);
}