WordPress.org

Plugin Directory

Changeset 411232


Ignore:
Timestamp:
07/18/11 01:15:58 (3 years ago)
Author:
tollmanz
Message:

Began work on making Order column sortable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • custom-taxonomy-sort/trunk/custom-taxonomy-sort.php

    r410779 r411232  
    109109        // Set up form elements in quick edit 
    110110        add_action('admin_init', array(&$this, 'add_quick_edit_action')); 
     111         
     112        //add_filter('posts_clauses', array(&$this, 'order_clauses'), 10, 2); 
    111113    } 
    112114     
     
    193195            // Adds columns for taxonomy pages 
    194196            add_filter("manage_edit-{$name}_columns", array(&$this, 'column_header'), 10, 1); 
     197            //add_filter("manage_edit-{$name}_sortable_columns", array(&$this, 'column_header_sortable'), 10, 1); 
    195198            add_filter("manage_{$name}_custom_column", array(&$this, 'column_value'), 10, 3); 
    196199        } 
     
    631634        return $columns; 
    632635    } 
     636 
     637    /** 
     638     * Defines the Order column as sortable 
     639     * 
     640     * @access public 
     641     * @param $columns array 
     642     * @return array 
     643     */ 
     644    function column_header_sortable($columns) 
     645    { 
     646        $columns['order'] = 'order'; 
     647        return $columns; 
     648    } 
     649     
     650    /** 
     651     * Sorts the Order column 
     652     * 
     653     * @access public 
     654     * @param $clauses array 
     655     * @param $wp_query array 
     656     * @return array 
     657     */ 
     658    function order_clauses($clauses, $wp_query) 
     659    { 
     660        global $wpdb; 
     661 
     662        if(isset($wp_query->query['orderby']) && 'order' == $wp_query->query['orderby'])  
     663        { 
     664             
     665            $clauses['join'] .= " 
     666        LEFT OUTER JOIN {$wpdb->term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id 
     667        LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id) 
     668        LEFT OUTER JOIN {$wpdb->terms} USING (term_id) 
     669        SQL"; 
     670         
     671            $clauses['where'] .= " AND (taxonomy = 'color' OR taxonomy IS NULL)"; 
     672            $clauses['groupby'] = "object_id"; 
     673            $clauses['orderby']  = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) "; 
     674            $clauses['orderby'] .= ( 'ASC' == strtoupper( $wp_query->get('order') ) ) ? 'ASC' : 'DESC'; 
     675        } 
     676         
     677        return $clauses; 
     678    } 
    633679     
    634680    /** 
Note: See TracChangeset for help on using the changeset viewer.