WordPress.org

Make WordPress Core

Opened 5 years ago

Closed 3 days ago

#18616 closed enhancement (wontfix)

WP_Query Order by Taxonomy

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

Description

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

Added:

'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 5 years ago.

Download all attachments as: .zip

Change History (9)

@justindgivens
5 years ago

#1 @justindgivens
5 years ago

  • Keywords needs-testing added

#2 @scribu
5 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:

http://wordpress.stackexchange.com/questions/14306/using-wp-query-is-it-possible-to-orderby-taxonomy/14309#14309

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

#3 @justindgivens
5 years ago

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

#4 @marsjaninzmarsa
10 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
10 months ago

  • Milestone set to Awaiting Review

#6 @sc0ttkclark
7 months 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 7 months ago by sc0ttkclark (previous) (diff)

This ticket was mentioned in Slack in #core by boone. View the logs.


3 days ago

#8 @boonebgorges
3 days ago

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

As @sc0ttkclark notes, there are performance concerns with this suggestion.

Performance aside, it's not clear how the feature would be implemented in a consistent way. A post object may be associated with more than one term in a taxonomy. When that's the case, how does the sorting work?

Closing, pending someone who wants to do the dirty work to demonstrate how the feature would work in practice.

Note: See TracTickets for help on using tickets.