【问题标题】:Add html to woocommerce product title将 html 添加到 woocommerce 产品标题
【发布时间】:2020-09-07 20:08:40
【问题描述】:

我希望能够在我的产品标题中添加一个“li”标签。为了以用户友好的方式实现这一点,我编写了一个将字符“-”更改为“li”标签的代码。 但目前 html 对“order-details-table”(例如,当您完成订购时出现)没有影响。是否有另一个过滤器可以全局添加 html,因此每次标题出现时它都会将“-”更改为“li”? --> 我更新了我的代码,现在 html 到处都出现了,只有以下问题剩余:

然而,在后端添加了 html,但显示为纯文本,因此它没有效果。这个问题也有解决办法吗?

What the product title looks like at the moment --> the html gets interpreted as normal text

add_filter( 'the_title', 'custom_the_title', 10, 2 );
add_filter( 'woocommerce_cart_item_name', 'custom_the_title', 20, 3);
add_filter( 'woocommerce_order_item_name', 'custom_the_title' );

function custom_the_title( $title){

        $title = str_replace( '-', '<li>', $title );
        $title = str_replace( '.', '</li>', $title );

    return $title;
}

非常感谢您的帮助,以及来自奥地利的问候! 塞缪尔

【问题讨论】:

  • 这可能与您的问题stackoverflow.com/questions/46412614/…有关
  • 是的,这是我的一些代码行......但是使用这篇文章中提供的 sn-p,订单详细信息表和购物车中的标题没有改变。 ..

标签: wordpress woocommerce


【解决方案1】:

你想得到这样的东西吗?如果没有,请提供更多信息,您希望看到什么?任何视觉示例?您希望在哪里看到这些更改?

add_filter( 'the_title', 'custom_the_title', 10, 2 );
add_filter( 'woocommerce_cart_item_name', 'custom_the_title', 20, 3);

function custom_the_title( $title){

        $title = '<li>'.$title.'</li>';
    return $title;
}

【讨论】:

  • 我刚刚更新了我的问题,因为我设法更改了代码,使其在前端随处可见,带有 html 标签。只有在后端,html 才会出现,但会被解释为普通文本。
  • 几天以来,我们在着陆页上使用了 Woocommerce Gutenberg Block:“最新产品”。你知道这个块的特定过滤器来改变html吗?
【解决方案2】:

即使在 Wordpress 5.2.4 版上,这个问题仍然存在,不仅在 Wordpress 5.5 上;我已经尝试过建议的功能,但它不起作用,因为 html 代码将始终显示为标题文本的一部分。例如,如果我想添加一个换行符,将标题中的一个单词更改为红色,则 html 标签只会显示,并且浏览器不会呈现 html。

即使将 php 函数 html_entity_decode() 应用于标题也没有运气!

所以这里是修复:

在检查了 Woocommerce 最新更新的代码后,我发现了 Titile.php woocommerce 插件代码的罪魁祸首:

echo esc_html( get_the_title() );

您需要对其进行编辑并删除esc_html()。但这是暂时的,因为 woocommrce 插件的任何更新都可能会返回问题。因此,我将把它留给这里的专家提出更好的解决方案。

【讨论】:

    【解决方案3】:

    我发现了同样的问题,我在标题中添加了一些跨度,这些跨度突然被呈现为文本而不是 HTML。这确实要归功于在 woocommerce/templates/single-product/title.php 中的标题周围添加了 esc_html()

    我已通过将文件复制到 woocommerce/single-product/title.php 下的主题文件夹并简单地删除 esc_html() 来修复它。这是“防更新”解决方案,因为它不会在 WooCommerce 下次更新时被覆盖。

    <h1 class="product_title entry-title">
        <?php echo get_the_title(); ?>
    </h1>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2021-08-19
      • 2018-03-17
      相关资源
      最近更新 更多