我正在使用 Breadcrumb NavXT 和 Filter Everything。我正在尝试将产品类别名称添加到自定义存档页面的路径中(不是分类存档)
我能够利用面包屑作者的示例(https://mtekk.us/archives/guides/add-a-static-breadcrumb-to-the-breadcrumb-trail/)和过滤作者的功能来做一些事情。这是我的代码:
add_action('bcn_after_fill', 'my_static_breadcrumb_adder');
function my_static_breadcrumb_adder($breadcrumb_trail) {
$output = flrt_selected_filter_terms();
$w1 = array_keys($output)[0];
$x1 = $output[$w1]["values"][0];
$y1 = get_term_by('slug', $x1, 'product_cat');
$z1 = $y1->name;
if (isset($z1)) {
$new_breadcrumb1 = new bcn_breadcrumb($z1, NULL, array('home'), get_site_url() . '/e-shop/' . $w1 . '-' . $x1, NULL, true);
array_splice($breadcrumb_trail->breadcrumbs, -4, 0, array($new_breadcrumb1));
}
}
我唯一的问题是我无法将额外的跟踪部分添加到 schema.org 数据中 (
itemListElement->name
)。仍然显示“E-SHOP”。应该是类别名称。
我们可以通过将自定义 breadcrumb 添加到面包屑路径并更新 schema.org 数据来实现预期输出。
add_action( 'bcn_after_fill', 'my_static_breadcrumb_adder' );
function my_static_breadcrumb_adder($breadcrumb_trail) {
$output = flrt_selected_filter_terms();
if ( empty( $output ) ) {
return;
}
$w1 = array_keys( $output )[0];
$x1 = $output[$w1]['values'][0];
$y1 = get_term_by( 'slug', $x1, 'product_cat' );
$z1 = $y1->name;
if ( isset( $z1 ) ) {
$new_breadcrumb1 = new bcn_breadcrumb( $z1, NULL, array('taxonomy', 'product_cat' ), get_term_link( $y1 ), NULL, true );
array_splice( $breadcrumb_trail->breadcrumbs, -1, 0, array( $new_breadcrumb1 ) );
// Here we have updated schema.org data.
$position = count( $breadcrumb_trail->breadcrumbs );
$breadcrumb_trail->add( new bcn_breadcrumb( $z1, NULL, array( 'taxonomy', 'product_cat' ), get_term_link( $y1 ), NULL, true, $position ) );
}
}