我已经在其他主题上看到了这一点,但无法弄清楚它是如何完成的。在我的分组产品列表中,标题列为父产品标题-> 子产品标题。我只需要它来列出子产品标题。
我可以看到要更改的代码是:
<a href="' . get_permalink( $child_product['product']->id ) . '">' . $child_product['product']->post->post_title . '</a>
post_title 需要被覆盖,或者代码更改为...什么?
我已经在其他主题上看到了这一点,但无法弄清楚它是如何完成的。在我的分组产品列表中,标题列为父产品标题-> 子产品标题。我只需要它来列出子产品标题。
我可以看到要更改的代码是:
<a href="' . get_permalink( $child_product['product']->id ) . '">' . $child_product['product']->post->post_title . '</a>
post_title 需要被覆盖,或者代码更改为...什么?
(虽然这很旧,但它仍然是一个常见的问题,具有突出的谷歌排名)
Woocommerce 定义了一个过滤器,woocommerce_product_title
它允许您通过一个修改产品显示方式的函数来传递产品的标题。
添加一个过滤器,可能在您的主题中functions.php
add_filter('woocommerce_product_title', 'clean_up_title');
这是我目前用来完成此任务的功能,没有承诺这是最好的方法:
function clean_up_title($title){
// check to see if there is an html arrow in the title
if (strpos($title, '→')){
$separator = '→';
}
// otherwise assume it's the character
else {
$separator = '→';
}
// split the title into multiple parts at the arrows
$prog_array = explode($separator, $title);
// get the last part, the actual product name
$prog_name = end($prog_array);
// slice off any leading or trailing whitespace
return trim($prog_name);
}
这样做会更干净一些。只需“返回”产品标题而不是“编辑”它。
function clean_product_title($title, $product) {
return $product->post->post_title;;
}
add_filter('woocommerce_product_title', 'clean_product_title', 10, 2);