【发布时间】:2019-10-04 15:26:02
【问题描述】:
我正在尝试在 Woocommerce 单个产品页面标题(在标题中)前面加上类别,使其看起来像
类别
产品标题
这是我目前所拥有的:
function prepend_category_to_title($title, $id) {
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
$product_cat = $term->name;
break;
}
if( is_product() ) {
$title = $product_cat . $title;
}
return $title;
}
add_filter('the_title', 'prepend_category_to_title', 10, 2);
我可以让它很好地添加标题,但使用 the_title 会将类别名称输出到每个菜单项和每个面包屑。
我从这里看到:https://wordpress.stackexchange.com/questions/309151/apply-the-title-filter-in-post-page-title-but-not-in-menu-title 这是预期的行为,我可以添加更多过滤器来删除这些额外的输出。例如add_filter( 'pre_wp_nav_menu'...
但这似乎非常低效和混乱。此外,以这种方式添加标题意味着类别文本也包含在标题 <h1> 标签中,这是我不想要的,因为类别名称需要在产品标题上方以较小的 <h5> 标签(和不同的字体) .
为了稍微复杂一点,由于我使用的主题 (Astra),产品标题位于 Woocommerce 的
woocommerce_single_product_summary 挂钩之外的标题中。
如何以更优雅的方式在产品类别前添加产品标题?蒂亚!
【问题讨论】:
标签: php wordpress woocommerce