此问题类似于Rename username label on woocommerce login page
我正在尝试将标签“用户名或电子邮件地址”更改为“您的注册电子邮件地址”
我正在尝试执行此操作而不修改form-login.php模板文件。
到目前为止,我尝试了以下代码:
function wppb_change_text_login( $translated_text, $text ) {
//Login page
$original_text = 'Username or email address';
$new_text = 'Your registered email address';
if ( $text == $original_text ) {
$translated_text = $new_text;
}
}
add_filter( 'gettext', 'wppb_change_text_login', 30, 2 );
但是,我知道gettext是非常消耗资源的功能,我想知道应该进行哪些更改以将这些更改限制在我的帐户页面上。
答案 0 :(得分:2)
如果您在函数的末尾添加return $translated_text;
,则您的代码将起作用,因为在任何过滤器挂钩中,必须返回过滤后的值。
要将此功能限制在我的帐户注册表格中,您将使用以下条件:
add_filter( 'gettext', 'wppb_change_text_login', 10, 3 );
function wppb_change_text_login( $translated_text, $text, $domain ) {
// Only on my account registering form
if ( ! is_user_logged_in() && is_account_page() ) {
$original_text = 'Username or email address';
if ( $text === $original_text )
$translated_text = esc_html__('Your registered email address', $domain );
}
return $translated_text;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
答案 1 :(得分:0)
要将“用户名或电子邮件地址”标签重命名为“您的注册电子邮件地址”,请在主题函数中添加以下功能。php
add_filter( 'gettext', 'register_text' );
add_filter( 'ngettext', 'register_text' );
function register_text( $translated ) {
$translated = str_ireplace( 'Username or Email Address', 'Your registered email address', $translated );
return $translated;
}
我已经用店面主题测试了上述功能,并且对我有用,请查看屏幕快照https://prnt.sc/m25hwz