仅在 WooCommerce 前端使用 gettext 过滤器进行字符串翻译
Using gettext filter for string translation in WooCommerce frontend only
我正在尝试使用 gettext
过滤器在没有语言文件的情况下翻译主题中的单词。但我只想在移动设备上翻译它 wp_is_mobile
并且只在前端。
使用下面的代码适用于前端,但在管理员中会破坏站点。
add_filter( 'gettext', 'translate_one_word', 999, 3 );
function translate_one_word( $translated, $text, $domain ) {
if (is_admin()) return;
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
return $translated;
}
}
谁能告诉我为什么我的网站在后端部分出现问题?
您的代码在后端运行顺利,但包含 2 个错误
- 你其实return什么都没有
这个
if (is_admin()) return;
应该是
if (is_admin()) return $translated;
- 始终使用没有任何条件的return,否则不满足条件,则无法returned
这个
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
return $translated;
}
应该是
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
}
return $translated;
因此,作为最终结果,您将得到:
function filter_gettext( $translated, $text, $domain ) {
if ( is_admin() ) {
return $translated;
}
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
}
return $translated;
}
add_filter( 'gettext', 'filter_gettext', 10, 3 );
我正在尝试使用 gettext
过滤器在没有语言文件的情况下翻译主题中的单词。但我只想在移动设备上翻译它 wp_is_mobile
并且只在前端。
使用下面的代码适用于前端,但在管理员中会破坏站点。
add_filter( 'gettext', 'translate_one_word', 999, 3 );
function translate_one_word( $translated, $text, $domain ) {
if (is_admin()) return;
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
return $translated;
}
}
谁能告诉我为什么我的网站在后端部分出现问题?
您的代码在后端运行顺利,但包含 2 个错误
- 你其实return什么都没有
这个
if (is_admin()) return;
应该是
if (is_admin()) return $translated;
- 始终使用没有任何条件的return,否则不满足条件,则无法returned
这个
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
return $translated;
}
应该是
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
}
return $translated;
因此,作为最终结果,您将得到:
function filter_gettext( $translated, $text, $domain ) {
if ( is_admin() ) {
return $translated;
}
if ( wp_is_mobile() ) {
$translated = str_ireplace( 'Wrong', 'Right', $translated );
}
return $translated;
}
add_filter( 'gettext', 'filter_gettext', 10, 3 );