php 木材贸易:在类别页面中如何在标题上显示产品属性名称,并通过地址栏上的“?pa_attribute=”“过滤”产品

tjvv9vkg  于 2022-11-28  发布在  PHP
关注(0)|答案(2)|浏览(118)

因此,我有一个产品属性(例如:color),我可以通过在地址栏中使用 ?pa_color=red 等命令,只显示类别中具有该属性的产品,因此如果我选择'* www.mysite.com/product-category/t-shirts/?pa_color=red*',我将只显示属性为红色的T恤。这很有效。
问题是,当我进行“过滤”时,页面标题(在产品列表上方)仍然只显示 “T恤”,它没有指定它只显示红色T恤,这可能会让客户感到困惑。我需要的是它显示类似 “T恤(颜色:红色)" 的内容。
我知道我可以使用侧边栏小部件来过滤属性,然后小部件将显示正在过滤的内容,但在这个特定的情况下,这是一个非常小的设计,没有侧边栏或任何过滤,我需要它在标题中显示。

ia2d9nvy

ia2d9nvy1#

add_filter( 'woocommerce_page_title', 'custom_woocommerce_page_title', 15, 1 );

function custom_woocommerce_page_title( $page_title ) {
    if ( is_archive() ) {
        $exists_attr = false;

        foreach ( $_GET as $index => $value ) {
            if ( substr( $index, 0, 3 ) === 'pa_' ) {
                $attr_id = wc_attribute_taxonomy_id_by_name( $index );

                if ( $attr_id === 0 ) {
                    continue;
                }

                if ( ! $exists_attr ) {
                    $exists_attr = true;

                    $page_title .= ' (';
                } else {
                    $page_title .= ', ';
                }

                $page_title .= wc_attribute_label( $index ) . ': ' . esc_html( $value );
            }
        }

        if ( $exists_attr ) {
            $page_title .= ')';
        }
    }

    return $page_title;
}
sqyvllje

sqyvllje2#

这是可行的,但它是不好的搜索引擎优化问题。你的“页面”并不真正存在,不会被谷歌索引。真正的解决办法将是创建一个真正的页面,如:www.mysite.com/product-category/t-shirts/red
但这是一个混合的类别和属性,我不知道如何才能实现它

相关问题