好的,所以我最近遇到了一个问题,试图为Wordpress管理工具栏创建一个自定义的假日/时间问候语,并遇到了这个答案,这让我走上了一条浪费时间的道路,因为它实际上完全没有必要。编辑节点时,无需销毁和重建管理工具栏。
Julien问题的简单解决方案是在函数中添加5行代码。替换所需url的php文件:
//-----------------------------------------------------------------------------
/* change location of user profile page in admin toolbar */
add_filter( \'edit_profile_url\', \'update_admin_bar_user_profile_url\', 10, 3 );
function update_admin_bar_user_profile_url( $url, $user_id, $scheme ) {
$url = site_url( \'/edit-user-profile/\' );
return $url;
}
//-----------------------------------------------------------------------------
现在,如果您想更深入地编辑/操作管理工具栏,您可以这样做,如果用户在其配置文件页面中输入了网站url,则可以将其作为节点添加到用户配置文件面板(“子菜单”中的链接):
/* --- add the user website link node in the admin toolbar --- */
add_action( \'admin_bar_menu\', \'update_admin_bar_user_node\', 250 );
function update_admin_bar_user_node( $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;
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;
}
// Add the users website/link to the user-actions sub-menu if they have one
$my_account = $wp_admin_bar->get_node( \'my-account\' );
if( ! empty( $current_user->user_url ) && $my_account ){
$wp_admin_bar->add_node( array(
\'parent\' => \'user-actions\',
\'id\' => \'user-url\',
\'title\' => \'<span class="user-url">\' . __( \'My Website\' ) . \'</span>\',
\'href\' => esc_url( $current_user->user_url )
) );
}
}
以下是该更改在“我的帐户”“用户操作”菜单中的外观截图: