如何移除产品标题末尾数字及解决残留连字符与省略号问题?
解决方案
直接替换原有代码即可解决省略号和连字符残留的问题:
add_filter( 'the_title', 'clean_woo_product_title', 10, 2 ); function clean_woo_product_title( $title, $id ) { if ( get_post_type( $id ) === 'product' ) { // 移除标题末尾的" - 数字库存码"部分 $clean_title = preg_replace('/\s-\s\d+$/', '', $title); // 清理末尾可能残留的连字符或空格 $clean_title = rtrim($clean_title, ' -'); return $clean_title; } else { return $title; } }
问题原因说明
- 原代码用的
wp_trim_words函数,核心作用是截断文本并添加省略号,哪怕传入-1(移除最后1个单词),它依然会默认补上省略号,这就是标题末尾出现三个点的原因。 - 原标题里的
-和库存码不是独立单词,移除最后一个单词(库存码)后,-会残留,无法被该函数处理。
新代码逻辑
- 用正则精准匹配标题末尾的
" - 数字序列"格式(库存码片段),直接移除整个部分。 - 用
rtrim兜底清理,确保标题末尾不会残留连字符或空格。
内容的提问来源于stack exchange,提问作者Revân
相关产品推荐
相关产品推荐

