I'm developing a listing portfolio for our project. (Basicaly yachts with their type, size, price, cabins, draft, build year, refit year etc.)

I should filter them according to type and sort by (size, price, cabins, draft, build year, refit year)

I created custom post types and their relevant custom fields etc.

I want to solve this listing with most basic way.

Custom fields is fitting almost all my needs. But I'm looking for performance also.

Now I have two options, First is filter according to custom field value

Second is using of custom taxonomies to get them directly from category.

Articles like Alex King informs that custom fields are should not use for filtering. Because Those values are not indexing. http://alexking.org/blog/2011/08/29/wordpress-post-meta-taxonomies

But to order my query (size, price, cabins, draft, build year, refit year etc.) I should use inner join to retrive records. (As far I know there is no another way. First question please advise is it true?)

For this case (someone who has already inner join) Second question Does it really matter to use taxonomies for categorising instead of filtering of custom fields?. (Because taxonomies are storing at another table and if I use them there will be another inner join.)

Third question is Does Custom fields are still not indexing? It is still same.

Please note : I do not care about query difference between 0,010 and 0,090

Thank you for your answers.


Taxonomy queries are by default extremely complex relative custom field queries. Without benchmarking I am pretty sure they are going to be slower even if the meta table isn't indexed, but you can add an index if you want. It won't effect WordPress at all.

My advice is "use what logically works for the data". If you have problems, solve the problems then.

  • most articles advice to use taxonomies, is this situation changed after wp meta query or it was same for all times. Because if it is same for all times why those people advice to use taxonomies – Deniz Porsuk Jun 2 '15 at 15:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.