在Woocommerce中重命名相关产品标题3

时间:2017-08-15 08:03:19

标签: php wordpress templates woocommerce gettext

我曾经使用以下功能来更改Woocommerce中的相关产品文本。

function my_text_strings( $translated_text, $text, $domain ) {
    switch ( $translated_text ) {
        case 'Related Products' :
            $translated_text = __( 'Related Books', 'woocommerce' );
            break;
    }
    return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );

它总是很完美,但是从Woocommerce 3.0版开始,这个功能不再适用。

我应该如何修复此问题才能使其在3.0及更高版本中运行?

3 个答案:

答案 0 :(得分:6)

试试这个,它与我合作

add_filter(  'gettext',  'wps_translate_words_array'  );
add_filter(  'ngettext',  'wps_translate_words_array'  );
function wps_translate_words_array( $translated ) {
     $words = array(
                // 'word to translate' = > 'translation'
               'Related Products' => 'Check out these related products',  
     );
     $translated = str_ireplace(  array_keys($words),  $words,  $translated );
     return $translated;
}

答案 1 :(得分:2)

现在有一个过滤器。 名称为“ woocommerce_product_related_products_heading”

因此,您可以在自己的主题functions.php文件中添加一些代码段,例如:

add_filter('woocommerce_product_related_products_heading',function(){

   return 'My Custom nice related title';

});

答案 2 :(得分:1)

一种简单的替代方式

Overriding Woocommerce templates via your theme用于single-product/related.php模板文件,您可以在其中直接重命名:

<h2><?php esc_html_e( 'Related products', 'woocommerce' ); ?></h2>

要:

<h2><?php esc_html_e( 'Related Books', 'woocommerce' ); ?></h2>