[wp-trac] Re: [WordPress Trac] #8022: non-DISTINCT query in get_archives for postbypost

WordPress Trac wp-trac at lists.automattic.com
Tue Feb 17 19:21:25 GMT 2009

#8022: non-DISTINCT query in get_archives for postbypost
 Reporter:  kevinB                      |        Owner:  anonymous
     Type:  defect (bug)                |       Status:  reopened 
 Priority:  normal                      |    Milestone:  2.8      
Component:  Template                    |      Version:  2.7      
 Severity:  normal                      |   Resolution:           
 Keywords:  archives,postbypost,filter  |  

Comment(by kevinB):

 I'm sorry I dragged "comments" into this conversation by accidentally
 using that word in a previous entry.  My concern here is strictly with the
 listing of posts by the function wp_get_archives, and the possibility of
 filtering that list by post category or other one-to-many relationship.

 I labeled this as a defect rather than feature request since the
 getarchives_join filter is already applied to the postbypost archive type,
 but joining on categories (a likely usage) causes duplicate entries in the
 end user's archives listing '''if a post is in more than one joined

 I maintain a plugin ([http://agapetry.net/news/introducing-role-scoper/])
 which imposes content-specific permissions.  I do this via JOIN and IN
 clauses on the term_relationships table (for category-specific roles) and
 also on my own user2role2object table (for post/page-specific roles).

 For the most part, WordPress provides all the hooks I need to pull this
 off.  For wp_get_archives, I have the getarchives_join and
 getarchives_where filters.  For the same reasons you cited above, my JOIN
 clauses would generate duplicate archive listings if the post is in more
 than one user-readable category.  Existing DISTINCT clauses in the
 monthly, yearly, weekly and daily archive types prevent duplicates.
 However, the query for postbypost archive uses a "SELECT *" query.  I want
 to filter that to "SELECT DISTINCT $wpdb->posts.*"

Ticket URL: <http://core.trac.wordpress.org/ticket/8022#comment:9>
WordPress Trac <http://trac.wordpress.org/>
WordPress blogging software

More information about the wp-trac mailing list