自定义 WordPress 注册登录错误信息文字

知更鸟 WordPress评论212阅读模式

自从 WordPress 6.0 发布后,简体中文版一直翻译不全,比如菜单设置页面有英文,对管理员来说障碍不是很大,但让人受不了的是注册登录错误提示信息也翻译不全,比如用户注册时填写邮箱格式不对,直接蹦出来个“Error: The email address is not correct.”用户肯定懵逼,中文的网站咋还显示英文呢?

那就自己动手解决吧,修改这些提示文字,再加上这些文字也并不一定符合自己的要求,提示文字在是WordPress 程序 wp-includes 目录 user.php 文件中,可以根据自己的喜好修改,修改完记得将文件编码修改为:UTF-8 无BOM(无签名),不然会显示乱码。当然下次更新还要再改一次,有些麻烦,可以通过下面的代码,修改这些默认的提示文字。文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

自定义 WordPress 注册登录错误信息文字

自定义 WordPress 注册登录错误信息文字

文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

将代码添加到当前主题函数模板 functions.php 即可。文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

// 登录错误信息
remove_filter( 'authenticate', 'wp_authenticate_username_password' );
add_filter( 'authenticate', 'zm_authenticate_username_password', 20, 3 );
 
function zm_authenticate_username_password( $user, $username, $password ) {
	if ( is_a( $user, 'WP_User' ) )
		return $user;
 
	if ( empty( $username ) || empty( $password ) ) {
		if ( is_wp_error( $user ) )
		return $user;
 
		$error = new WP_Error();
 
		if ( empty( $username ) )
			$error->add( 'empty_username', __('请输入用户名', 'zm' ) );
 
		if ( empty( $password ) )
			$error->add( 'empty_password', __( '请输入密码', 'zm' ) );
 
		return $error;
	}
 
	$user = get_user_by( 'login', $username );
 
	if ( !$user )
		return new WP_Error( 'invalid_username', sprintf( __( '无此用户', 'zm' ) ) );
 
	$user = apply_filters( 'wp_authenticate_user', $user, $password );
	if ( is_wp_error( $user ) )
		return $user;
 
	if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) )
		return new WP_Error( 'incorrect_password', sprintf( __( '用户名与密码不匹配', 'zm' ) ) );
 
	return $user;
}
 
// 注册错误信息
add_filter( 'registration_errors', 'zm_registration_error_message' );
function zm_registration_error_message( $errors ) {
	if( isset( $errors->errors['invalid_email'] ) ) {
		$errors->errors['invalid_email'][0] = __( '请输入正确的邮件', 'zm' );
	}
 
	if( isset( $errors->errors['username_exists'] ) ) {
		$errors->errors['username_exists'][0] = __( '用户名已被占用', 'zm' );
	}
	// 添加其它错误提示
	// ['empty_email']
	// ['empty_username']
	return $errors;
}

貌似现在 WordPress 不是人工翻译,也不会有人干预,这个问题或将长期存在,也可能永远就这样了,不会再有什么完整的简体中文版语言包...文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

 文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html 文章源自知更鸟-https://zmingcx.com/custom-wordpress-register-login-message.html

weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定