Learn how to replace the "Howdy" greeting in WordPress admin with custom text to better align with your brand or audience. Follow this step-by-step guide to personalize the admin dashboard experience.
Log into WordPress and there it is in the top corner: “Howdy.” Friendly enough, but it doesn’t fit every site, and clients notice it. The good news is the greeting lives in one admin bar node, so you can swap it for “Welcome,” “Hello,” or anything you like with a few lines in functions.php.
Here’s how to do it cleanly, plus one catch that trips most people up.
Step 1: Open Your Theme’s functions.php File
Accessing the File
The functions.php file sits in your active theme’s directory. Reach it over FTP, through cPanel’s file manager, or in the dashboard under Appearance > Theme Editor. If you’re on a live site, use a child theme so an update doesn’t wipe your change.
Step 2: Add the Code to Replace ‘Howdy’
Customizing the Greeting
Drop this snippet into functions.php. It grabs the account node from the admin bar and rewrites its title, turning “Howdy” into “Welcome.”
Code to Replace ‘Howdy’ in WordPress Admin Bar:
/**
* Replace Howdy in the WordPress admin bar with custom text.
*/
function replace_howdy_wordpress( $wp_admin_bar ) {
// Get the existing "my-account" node from the admin bar.
$account_node = $wp_admin_bar->get_node( 'my-account' );
// Replace the "Howdy" text with "Welcome" (or your preferred text).
$txt_replacement = str_replace( "Howdy", "Welcome", $account_node->title );
// Update the "my-account" node with the new title.
$wp_admin_bar->add_node( array(
'id' => 'my-account',
'title' => $txt_replacement
) );
}
add_filter( 'admin_bar_menu', 'replace_howdy_wordpress' );
Explanation of the Code
replace_howdy_wordpress: Hooks intoadmin_bar_menuand edits the “my-account” node, which is where the greeting lives.get_node: Pulls the current “my-account” node so you can read its title.str_replace: Swaps “Howdy” for “Welcome” inside that title, and leaves everything else (the display name and avatar) untouched.add_node: Writes the new title back to the node.
Customize the Greeting
Want something other than “Welcome”? Change the replacement text in str_replace. For “Hello,” use:
$txt_replacement = str_replace( "Howdy", "Hello", $account_node->title );
One Catch: Hook Priority
Here’s what the tutorials skip. WordPress builds the “Howdy, %s” title late, in wp_admin_bar_my_account_item() at priority 9991. If your function runs at the default priority of 10, it fires before the greeting exists, so str_replace finds nothing and the change doesn’t stick. Give your hook a higher priority than core: add_filter( 'admin_bar_menu', 'replace_howdy_wordpress', 9999 ). If you’d rather skip the node dance entirely, a gettext filter that runs str_replace on the “Howdy,” string is a lighter alternative that works the same way.
That’s it. A small tweak, but it cleans up the admin for you and your clients, and it’s the kind of detail that makes a handoff feel finished.


