Although the new orderby
parameter is great in WP_Query
, it does not support multiple orderby
for multiple meta_key
‘s.
I’ve went through a couple of scenarios and even went and digged into trac and make and came up with the following
-
make.wordpress.org A more powerful orderby in wordpress 4.0
None of the issues regarding this very problem have been answered. It also seems from those two links that there is an issue ordering by a meta_key
and another field like post date for instance. I haven’t tried this as yet.
I truelly think that you have two choices here without creating two queries.
-
hack using the
posts_orderby
filter as described by @s_ha_dum in his answer here -
By making use of PHP ordering using
usort
. The idea here would be to sort your query by onemeta_key
and then take the returned posts array ($posts) and sort them by the secondmeta_key
before the loop starts. You can either use thethe_posts
filter (just remember to remove the filter once done) or simply unset$posts
in your template and set it with the reordered array of posts once done