Let me start saying that I know a \'tax_query\' is faster than \'meta_query\'.
It\'s always recommended to use taxonomies over custom meta when filtering by custom data is required, but here I found myself in this situation.
I\'m creating a Real Estate application where I have this obvious post type \'property\'. Each property is supposed to have X number of rooms and bathrooms.
Then in my app you can filter properties by range... for example:
Show all properties that have from 3 to 18 rooms.
The custom field way would be to add a custom field, eg: \'rooms\' and then do my query like:
$args = array(
\'post_type\' => \'property\',
\'meta_query\' => array(
\'key\' => \'rooms\',
\'value\' => array(3,18),
\'type\' => \'numeric\',
\'compare\' => \'BETWEEN\',
),
);
$query = new WP_Query( $args );
The taxonomy way would be for example to create a custom taxonomy called \'property_rooms\', then create the terms like \'1\', \'2\', \'3\', etc.. and do my query by term ID\'s like:
$args = array(
\'post_type\' => \'property\',
\'tax_query\' => array(
\'taxonomy\' => \'property_rooms\',
\'terms\' => array(3,4,5,6,7,8,9,10,11,12,13,14,15...etc) // Just pretend these are the corresponding term id\'s
)
);
$query = new WP_Query( $args );
And here\'s the question:
Does tax_query beats meta_query even in situations like this?
It may be relevant to mention that we could be talking about thousands of properties.
Keep in mind sorting by these fields is neither a requirement nor a consideration to trade the speed of the query.