I'm trying to filter WooCommerce product archive by custom attributes.
For example, there are 5 products with attribute "color" containing "red", and another 3 with attribute "color" containing "blue".
How can I apply a filter to the products loop, so only the products containing "red" will be shown?
Thanks
On one of my sites I had to make a custom search by a lot of data some of it from custom fields here is how my $args look like for one of the options:
$args=array('meta_query'=>$meta_query,'tax_query'=>array($query_tax),'posts_per_page' => 10,'post_type' => 'ad_listing','orderby'=>$orderby,'order'=>$order ,'paged'=>$paged);
where "$meta_query" is:
$key="your_custom_key"; //custom_color for example
$value="blue";//or red or any color
$query_color = array('key' => $key, 'value' => $value);
$meta_query[] = $query_color;
and after that:
query_posts($args);
so you would probably get more info here: http://codex.wordpress.org/Class_Reference/WP_Query and you can search for "meta_query" in the page to get to the info
You can use the WooCommerce Layered Nav widget, which allows you to use different sets of attributes as filters for products. Here's the "official" description:
Shows a custom attribute in a widget which lets you narrow down the list of products when viewing product categories.
If you look into plugins/woocommerce/widgets/widget-layered_nav.php, you can see the way it operates with the attributes in order to set filters. The URL then looks like this:
... and the digits are actually the id-s of the different attribute values, that you want to set.
You can use WooCommerce AJAX Product Filter. You can also watch how the plugin is used for product filtering.
Here is a screenshot:
A plugin is probably your best option. Look in the wordpress plugins directory or google to see if you can find one. I found the one below and that seemed to work perfect.
https://wordpress.org/plugins/woocommerce-products-filter/
This one seems to do exactly what you are after
Try WooCommerce Product Filter, plugin developed by Mihajlovicnenad.com. You can filter your products by any criteria. Also, it integrates with your Shop and archive pages perfectly. Here is a screenshot. And this is just one of the layouts, you can customize and make your own. Look at demo site. Thanks!
Use plugin "WooCommerce Product Filters"
https://woocommerce.com/products/product-filters
Features
Quick filtering of products using AJAX technology
Filter by criteria: categories, attributes, tags, taxonomies, price
Pagination and product sorting without reloading page
Elements: price slider, checkbox list, radio list, dropdown, color list, box list, text list and others
Widgets “Products Filter” and “Notes for Product Filters”
Shortcodes and integration with product shortcodes
Adaptive filter options and product counts
来源:https://stackoverflow.com/questions/15138113/how-to-filter-woocommerce-products-by-custom-attribute