Woocommerce 通过类别搜索并显示产品

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

目前,当我搜索一个术语时,搜索引擎仅查找产品信息(我认为是标题和描述)。我正在寻找一种方法来在其中添加产品类别,并在该术语出现在类别标题或描述中时列出这些类别中的产品。

我不想显示类别,仅显示这些类别中的产品(如果在这些类别的标题或描述中找到这些术语)。

我现在没有任何代码,因为我没有找到任何相关信息。只有人们说要下载一个插件,但我想要一个带有 add_action pre_get_posts 的 PHP 函数。

我正在使用 wpml 插件(翻译插件),我想确保它考虑到这一点。

欢迎任何帮助,谢谢

我尝试寻找方法来做到这一点,但我无法弄清楚。我能找到的都是插件。

php wordpress search woocommerce
1个回答
0
投票

您可以使用

pre_get_post
过滤器来实现此目的。请注意,这会影响整个网站的搜索结果,因此,如果您只需要特定部分/表单,那么您需要相应地添加条件

function search_by_category( $query ) {

    if ( !is_admin() && $query->is_search ) {

        // Get the search query
        $search_query = $query->query_vars['s'];

        // Modify the query to search category names and descriptions
        $query->set( 'tax_query', array(
            'relation' => 'OR',
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'name',
                'terms'    => $search_query,
                'operator' => 'LIKE'
            ),
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'description',
                'terms'    => $search_query,
                'operator' => 'LIKE'
            )
        ));

        // Only search for products
        $query->set( 'post_type', 'product' );
    }
}
add_action( 'pre_get_posts', 'search_by_category' );
© www.soinside.com 2019 - 2024. All rights reserved.