背景
此问题是上一个问题的后续问题,标题为 在 Woocommerce 产品标题中添加换行符
对我来说,将本主题中的代码(见下文)添加到我的子 astra 主题时就像一个魅力。我有一个问题要稍微升级一下这段代码,希望一些聪明的开发人员可以帮助我。
//ADD LINE BREAK
add_filter( 'the_title', 'custom_the_title', 10, 2 );
function custom_the_title( $title, $post_id ) {
$post_type = get_post_field( 'post_type', $post_id, true );
if( $post_type == 'product' || $post_type == 'product_variation' )
$title = str_replace( '|', '<br/>', $title ); // we replace '|' by '<br>'
return $title;
}
所以我将 woocommerce 产品下的产品名称更改为“名称 | 这里”,在前端产品库中得到这样的结果
“姓名
这里”
问题
代码就像产品库中的魅力一样,一切都很好 - 但这是我的问题出现的地方。它显示了一个 ' | ”在所有子页面上,例如“购物篮”和“菜单购物车”。我有两个选择我想尝试一下:
或
<br/>
”仅允许出现在产品图库页面上,从而导致隐藏和/或在所有其他页面上充当“显示:无”?希望大家能帮助我。
要更改购物车商品、迷你购物车和订单商品上显示的产品名称(+电子邮件通知),请使用以下附加代码:
// For mini cart and cart item name
add_action( 'woocommerce_cart_item_name', 'alter_wc_cart_item_name', 10, 2 );
function alter_wc_cart_item_name( $item_name, $cart_item ) {
if ( strpos($item_name , '|') !== false ) {
$item_name = str_replace( '|', '<br/>', $item_name );
}
return $item_name;
}
// For order item name (even on email notifications)
add_action( 'woocommerce_order_item_name', 'alter_wc_order_item_name', 10, 2 );
function alter_wc_order_item_name( $item_name, $item ) {
if ( strpos($item_name , '|') !== false ) {
$item_name = str_replace( '|', '<br/>', $item_name );
}
return $item_name;
}
代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并有效。
此解决方案适用于产品链接吗?我可以让产品标题显示在两行上,但是当使用产品标题生成链接时,我无法以同样的方式将其打破。