【问题标题】:Append a text string to WooCommerce product title将文本字符串附加到 WooCommerce 产品标题
【发布时间】:2019-02-15 03:57:52
【问题描述】:
<div class="woocommerce-loop-product__title"><? wc_get_template('single-product/title.php');?>

我试图让这个字符串说:“产品名称更多信息”

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

【问题讨论】:

    标签: php wordpress templates woocommerce string-concatenation


    【解决方案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 );
    

    【讨论】:

    • 这是最简单的方法吗?有没有办法添加现有代码而无需返回我的functions.php进行编辑?
    • 我认为最好在functions.php中添加代码而不改变主题或插件
    • 如果您需要更改现有代码,那么您可能不得不接受@LoicTheAztec 的回答
    【解决方案2】:

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

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

    WordPress 函数the_title() 回显产品标题,因此如果您想在标题后附加“更多信息”,则不能再次使用回显。您将改用这一行:

    <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>' ); ?>
    

    经过测试并且有效。

    【讨论】:

    • 我如何在这条线上放置一个不同的类,只允许我在这个 div 中设置它的样式?我已经尝试了一切,但似乎它想更改我网站上的标题文本,我不希望那样。我只需要在这个非常特定的区域进行更改。我已经尝试过
      ,我已经尝试过

      以及其他一些尝试,但似乎我无法让这件事让步并屈服于我的意愿。

    【解决方案3】:

    一个很好的问题,我花了几天时间和大量的堆栈溢出来找到一个适合我的解决方案。

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

    将 OUR REVIEW OF 替换为您喜欢的文本。双 '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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2018-03-17
      相关资源
      最近更新 更多