You can use the gettext
filter:
/**
* Rename the 'Username' label in wp-login.php
*
* @see http://wordpress.stackexchange.com/a/159507/26350
*/
add_filter( 'wp_login_errors',
function( $errors )
{
add_filter( 'gettext', 'wpse_change_username', 99, 3 );
return $errors;
}
);
function wpse_change_username( $translated_text, $untranslated_text, $domain )
{
$old = "Username";
$new = "Jediname";
if ( $untranslated_text === $old )
$translated_text = $new;
remove_filter( current_filter(), __FUNCTION__ );
return $translated_text;
}
where we hook into the wp_login_errors
, which is very close to the username
input.
Here’s a screenshot: