将 schema.org 数据添加到面包屑中

问题描述 投票:0回答:1

我正在使用 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”。应该是类别名称。

wordpress breadcrumbs
1个回答
0
投票

我们可以通过将自定义 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 ) );
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.