Make WordPress Core

Opened 4 years ago

Last modified 6 weeks ago

#18616 reopened enhancement

WP_Query Order by Taxonomy

Reported by: justindgivens Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 3.2.1
Component: Query Keywords: has-patch needs-testing 2nd-opinion close
Focuses: Cc:


To be able to order by a taxonomy for any post type.


'orderby' => 'tax'
'tax_name' => 'taxonomy_name'

This way you can sort the post by the Term->name (ASC/DESC) value.

It was something needed in one of my projects and thought the WP community might like it.

Attachments (1)

query.diff (1.7 KB) - added by justindgivens 4 years ago.

Download all attachments as: .zip

Change History (7)

4 years ago

#1 @justindgivens
4 years ago

  • Keywords needs-testing added

#2 @scribu
4 years ago

  • Milestone Awaiting Review deleted
  • Resolution set to wontfix
  • Status changed from new to closed

Thanks for the patch, but this is not something we want in Core. Here's a thorough explanation from Otto:


Last edited 4 years ago by scribu (previous) (diff)

#3 @justindgivens
4 years ago

Scribu, thanks for the quick turn. Also thanks for those articles.

#4 @marsjaninzmarsa
4 months ago

  • Keywords 2nd-opinion added
  • Resolution wontfix deleted
  • Status changed from closed to reopened

Otto had a point, but had it 4 years ago - now we have sticky posts and other custom implementations of the same concept for CPT based on taxes, what with it?

If I wanna show my "Promoted" posts on the top I must create two separate WP_Querys, or manually play with SQL via hooks, or rearrange posts array after query (last one only if I can bear sticking on each page separately, what's not right solution in some cases).

#5 @SergeyBiryukov
4 months ago

  • Milestone set to Awaiting Review

#6 @sc0ttkclark
6 weeks ago

  • Keywords close added

I'd be totally +1 for this, but I just can't because it still requires three joins (wp_term_relationships for terms related to the posts, wp_term_taxonomy to restrict by taxonomy, wp_terms to get the term name).

However, there are solutions in the form of snippets and maybe even plugins -- that can add this functionality. So I'd say, for performance reasons, this should be closed. Three joins is an awful lot on a very large database of posts with heavy use of terms.

Last edited 6 weeks ago by sc0ttkclark (previous) (diff)
Note: See TracTickets for help on using tickets.