在 woocommerce 搜索中包含自定义字段值
Include custom fields value in woocommerce search
我尝试在 woocommerce search 中包含自定义字段值,但我遇到了问题。
在 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
将是正确的钩子,并且为了安全起见,保持现有默认值 $query->get( 'meta_query' );
Reference:
感谢 OP 给我带来这个案例:)
这是我来自 wordpress.stackexchange.com
的类似问题:
这正是我一直在寻找的,也是正确的解决方案
我尝试在 woocommerce search 中包含自定义字段值,但我遇到了问题。
在 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
将是正确的钩子,并且为了安全起见,保持现有默认值 $query->get( 'meta_query' );
Reference:
感谢 OP 给我带来这个案例:)
这是我来自 wordpress.stackexchange.com
的类似问题:
这正是我一直在寻找的,也是正确的解决方案