我正在尝试在管理栏上添加一个区域,该区域将显示用户配置文件图像、用户名、用户电子邮件、用户角色以及编辑配置文件和注销的链接。我希望它的显示方式是
史蒂夫·杰克逊-stevejack@yahoo.com
著者
编辑配置文件(<<<;“链接”
注销(<)<<;“链接”
用户信息左侧有用户图像
到目前为止,我已经在管理栏中显示了第二个div区域,没有下拉菜单,并对管理栏进行了修改。使用此函数显示用户图像、名称和电子邮件的php文件
function wp_admin_bar_my_account_item( $wp_admin_bar ) {
$user_id = get_current_user_id();
$current_user = wp_get_current_user();
$profile_url = get_edit_profile_url( $user_id );
if ( ! $user_id )
return;
$user_info = get_avatar( $user_id, 64 );
$user_info .= "<span class=\'display-name\'>{$current_user->display_name}</span>";
if ( $current_user->display_name !== $current_user->user_email )
$user_info .= "<span class=\'username\'> - {$current_user->user_email}</span>";
$wp_admin_bar->add_menu( array(
\'id\' => \'my-account\',
\'parent\' => \'top-secondary\',
\'title\' => $user_info,
\'meta\' => array(
\'class\' => $class,
\'title\' => __(\'My Account\'),
),
) );
}
最合适的回答,由SO网友:Mr Rethman 整理而成
我认为您需要使用“global$current\\u user;”在函数中获取$current\\u user和全局$wp\\u admin\\u bar的详细信息;用于管理栏。
这就是我如何获得当前用户的角色并根据角色从admin更改URL的方法(这并不能解决您的问题,但您可能会发现这很有帮助)
function mytheme_admin_bar_render() {
global $wp_admin_bar;
global $current_user;
if (!is_admin()) {
$adminUrl = admin_url();
$wp_admin_bar->add_menu( array(
\'parent\' => false,
\'id\' => \'am-profile\',
\'title\' => __(\'Admin\'s Title\'),
\'href\' => $adminUrl
));
}else{
$profilehref = site_url();
$wp_admin_bar->add_menu( array(
\'parent\' => false,
\'id\' => \'some_id\',
\'title\' => __($sitereturnto),
\'href\' => $profilehref
));
}
}
add_action( \'admin_bar_menu\', \'mytheme_admin_bar_render\', 20 );