问题
I tried include custom fields value in woocommerce search but i have a problem.
On Google and Stack too, i saw examples with pre_get_posts, so i thought this is good direction and i made code like this:
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' );
Unfortunately it's not working. Can You help me?
回答1:
I see what you did wrong, here is a working example that i did on my own instance.
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' );
Since you are using the Woocommerce search woocommerce_product_query
would be the correct hook, and to be safe, keeping existing defaults by $query->get( 'meta_query' );
Reference: WooCommerce search products between price range using WP_Query
Thanks OP for bringing me this case :)
回答2:
Here is my similar question from wordpress.stackexchange.com
:
- https://wordpress.stackexchange.com/a/309900/133615
That's what I was looking for and it's the right solution
来源:https://stackoverflow.com/questions/49496211/include-custom-fields-value-in-woocommerce-search