Ticket #8832: number_get_terms_fix.diff
File number_get_terms_fix.diff, 1.8 KB (added by , 16 years ago) |
---|
-
wp-includes/taxonomy.php
736 736 if ( $hide_empty && !$hierarchical ) 737 737 $where .= ' AND tt.count > 0'; 738 738 739 if ( !empty($number) ) { 739 // don't limit the query results when we have to descend the family tree 740 if ( ! empty($number) && ! $hierarchical && empty( $child_of ) && '' == $parent ) { 740 741 if( $offset ) 741 $ number= 'LIMIT ' . $offset . ',' . $number;742 $limit = 'LIMIT ' . $offset . ',' . $number; 742 743 else 743 $ number= 'LIMIT ' . $number;744 $limit = 'LIMIT ' . $number; 744 745 745 746 } else 746 $ number= '';747 $limit = ''; 747 748 748 749 if ( !empty($search) ) { 749 750 $search = like_escape($search); … … 758 759 else if ( 'names' == $fields ) 759 760 $select_this = 't.term_id, tt.parent, tt.count, t.name'; 760 761 761 $query = "SELECT $select_this FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ($in_taxonomies) $where ORDER BY $orderby $order $ number";762 $query = "SELECT $select_this FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ($in_taxonomies) $where ORDER BY $orderby $order $limit"; 762 763 764 $terms = $wpdb->get_results($query); 763 765 if ( 'all' == $fields ) { 764 $terms = $wpdb->get_results($query);765 766 update_term_cache($terms); 766 } else if ( ('ids' == $fields) || ('names' == $fields) ) {767 $terms = $wpdb->get_results($query);768 767 } 769 768 770 769 if ( empty($terms) ) { … … 812 811 $terms = $_terms; 813 812 } 814 813 814 if ( 0 < $number && intval(@count($terms)) > $number ) { 815 $terms = array_slice($terms, $offset, $number); 816 } 817 815 818 wp_cache_add( $cache_key, $terms, 'terms' ); 816 819 817 820 $terms = apply_filters('get_terms', $terms, $taxonomies, $args);