在WooCommerce产品标题后附加一个文本字符串

时间:2019-02-15 03:57:53

标签: php wordpress templates woocommerce string-concatenation

<div class="woocommerce-loop-product__title"><? wc_get_template('single-product/title.php');?>

我正在尝试使此字符串说:“产品名称更多信息”

我可以很好地使用“产品名称”部分,但是如何将“更多信息”连接到此代码以使其正确输出?我尝试的每次回声尝试都会破坏我的网站

3 个答案:

答案 0 :(得分:2)

如果您查看模板single-product/title.php代码,则基本上就是这样:

the_title( '<h1 class="product_title entry-title">', '</h1>' );

WordPress功能the_title()会回显产品标题,因此,如果要在标题后附加“更多信息”,则不能再次使用echo。您将改用以下行:

<div class="woocommerce-loop-product__title"><? the_title( '<h1 class="product_title entry-title">', ' More Info</h1>' ); ?>

或更干净的方式。

<div class="woocommerce-loop-product__title"><? the_title( '<h1 class="product_title entry-title">', ' '. __("More Info") . '</h1>' ); ?>

经过测试可以正常工作。

答案 1 :(得分:1)

如果您尝试使用字符串来隐藏产品名称标题,则可以使用woocommerce_shop_loop_item_title钩子。

remove_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 );
function change_product_title() {
    $additional_text = ' More info';
    echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() .$additional_text.'</h2>';
}
add_action('woocommerce_shop_loop_item_title','change_product_title');

或者,如果您想在单个产品页面中更改产品标题,

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );

function woocommerce_template_single_title_custom(){
    $additional_text = ' More Info';
    the_title( '<h3 class="product_title entry-title">', $additional_text.'</h3>' );
}
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title_custom', 5);

the_title函数的语法为

the_title( $before, $after, $echo );

答案 2 :(得分:0)

一个很好的问题,我花了几天时间和大量 Stack Overflowing 才找到适合我的解决方案。

使用@melvin 的答案(第二个解决方案),我做了一些更改以避免标题和 $additional_text 重复。我还包括了一个双换行符并应用了一个类。

用您喜欢的文字替换我们的评论。双“break”纯粹是为了造型,如果需要可以删除。

这是我的解决方案(添加到子主题 - functions.php),经过测试并在 WooCommerce v.5.51 上工作:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );

function woocommerce_template_single_title_custom(){
    $additional_text = ' OUR REVIEW OF '."<br><br>";
   
echo "<span style='font-size: 30px; color: #00a4cc; vertical-align: top;'>".$additional_text."</span>";
}

add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title_custom', 5);