Allow limiting the number of cats to fetch.

git-svn-id: https://develop.svn.wordpress.org/trunk@4015 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2006-07-11 18:15:24 +00:00
parent 7337c5bbc0
commit 967b1a18ba
1 changed files with 9 additions and 2 deletions

View File

@ -20,12 +20,14 @@ function &get_categories($args = '') {
parse_str($args, $r);
$defaults = array('type' => 'post', 'child_of' => 0, 'orderby' => 'name', 'order' => 'ASC',
'hide_empty' => true, 'include_last_update_time' => false, 'hierarchical' => 1, $exclude => '', $include => '');
'hide_empty' => true, 'include_last_update_time' => false, 'hierarchical' => 1, $exclude => '', $include => '',
'number' => '');
$r = array_merge($defaults, $r);
if ( 'count' == $r['orderby'] )
$r['orderby'] = 'category_count';
else
$r['orderby'] = "cat_" . $r['orderby']; // restricts order by to cat_ID and cat_name fields
$r['number'] = (int) $r['number'];
extract($r);
$where = 'cat_ID > 0';
@ -73,7 +75,12 @@ function &get_categories($args = '') {
$having = 'HAVING category_count > 0';
}
$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories WHERE $where $having ORDER BY $orderby $order");
if ( !empty($number) )
$number = 'LIMIT ' . $number;
else
$number = '';
$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories WHERE $where $having ORDER BY $orderby $order $number");
if ( empty($categories) )
return array();