问题
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
回答1:
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
回答2:
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:
http://yoursite.com/shop/?filtering=1&filter_min-kvadratura=181&filter_max-kvadratura=108&filter_obem-ohlajdane=111
... and the digits are actually the id-s of the different attribute values, that you want to set.
回答3:
You can use WooCommerce AJAX Product Filter. You can also watch how the plugin is used for product filtering.
Here is a screenshot:
回答4:
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
回答5:
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!
来源:https://stackoverflow.com/questions/15138113/how-to-filter-woocommerce-products-by-custom-attribute