wordpress - 在 woocommerce 搜索中包含自定义字段值

标签 wordpress search woocommerce custom-fields

我尝试在 woocommerce 中包含自定义字段值搜索 但我有一个问题。

在 Google 和 Stack 上,我也看到了 pre_get_posts 的示例,所以我认为这是一个很好的方向,我编写了这样的代码:

function custom_search( $query ) {

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

        if ( $query->is_search() ) { 

            $meta_query = array(
                'key'       => 'custom_color',
                'value'     => $query->query['s'],
                'compare'   => 'LIKE'  
            );

            $query->set( 'meta_query', $meta_query );

        }

    }

}

add_action( 'pre_get_posts' , 'custom_search' );

不幸的是,它不起作用。你能帮助我吗?

最佳答案

我知道您做错了什么,这是我在自己的实例中所做的一个工作示例。

function custom_search( $query ) {

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

        if ( $query->is_search() ) { 

            $meta_query = $query->get( 'meta_query' );

            $meta_query[] = array(
                'key'       => 'custom_color',
                'value'     => $query->query['s'],
                'compare'   => 'LIKE'  
            );

            $query->set( 'meta_query', $meta_query );

        }

    }

}

add_action( 'woocommerce_product_query' , 'custom_search' );

由于您使用的是 Woocommerce 搜索 woocommerce_product_query将是正确的钩子(Hook),并且为了安全起见,将现有默认值保持为 $query->get( 'meta_query' );

Reference: WooCommerce search products between price range using WP_Query



感谢 OP 给我带来了这个案例 :)

关于wordpress - 在 woocommerce 搜索中包含自定义字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496211/

相关文章:

algorithm - parking 场搜索算法

php - 仅更改商店页面的 WooCommerce 产品列 CSS

css - 我无法在我的 wordpress 网站上使用@font-face 支持

php - 从子类别术语定位 WooCommerce 产品类别存档页面

php - Android PHP MySQL 搜索结果到ListView

wordpress - 在 woocommerce 电子邮件中显示商品价格(不是商品总额)

wordpress - 如何使用循环 (WordPress) 显示我的所有类别名称

Python - 基于多个过滤器搜索文件名的有效方法

php - Woocommerce 新用户邮箱

wordpress - WooCommerce:删除产品写入面板选项卡