我正在使用WooCommerce和自定义分类模板。我试图输出客户正在查看的当前分类法的父类别,作为"后退"按钮或"跳上一个类别"链接。
输出需要创建一个短代码,以便可以将其放置在自定义模板构建器中。或者我被添加到XYZ片段,这将为函数创建一个短代码。
我尝试了一个片段,但没有在前端输出。
- 请帮帮我**
类别树示例(父项突出显示):
* Furniture
* Furniture Chairs (Would show "Furniture")
* Armchair (Would show "Chairs")
* Wooden Armchairs (Would show "Armchair")
function product_category_parent_shortcode() {
$cat = get_queried_object();
$cats = get_terms( [
'taxonomy' => $cat->taxonomy,
'child_of' => $cat->parent,
] );
if ( ! empty( $cats ) ) {
echo '<ul>';
foreach ( $cats as $cat ) {
$url = esc_url( get_category_link( $cat ) );
// change the 'before' and/or 'after' or whatever necessary
echo "<li>before <a href='$url'>$cat->name</a> after</li>";
}
echo '</ul>';
}
}
add_shortcode('product_category_parent', 'product_category_parent_shortcode');
我也试过下面的代码片段,但结果不一致。它输出的类别链接有时有效,有时无效,这让我认为代码搜索的地方不对。代码的设计是为了搜索单个产品术语,而不是所需的类别。
// Get parent product categories on single product pages
$terms = wp_get_post_terms( get_the_id(), 'product_cat', array( 'include_children' => false ) );
// Get the first main product category (not a child one)
$term = reset($terms);
$term_link = get_term_link( $term->term_id, 'product_cat' ); // The link
echo '<h2 class="link"><a href="'.$term_link.'">Return</a></h2>';
1条答案
按热度按时间jk9hmnmh1#
如果只是想显示breadcrumb样式的tax父列表,可以使用get_term_parents_list
即
如果你需要建立你自己的html格式,那么使用get_ancestors
如果您只想显示第一级父级,而不想显示第二级到顶级,则只需在
get_queried_object
parent
值上使用get_term即