WordPress Mod: - function dropdown_cats

This is a complete replacement for function dropdown_cats in file b2template.functions.php

You should be able to cut and paste from this page


function dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc',
                       $optiondates = 0, $optioncount = 0, $hide_empty = 1) {
    global $cat, $tablecategories, $tableposts, $querycount, $wpdb;
    $sort_column = 'cat_'.$sort_column;

    $query  = " SELECT cat_ID, cat_name,";
    $query .= "  COUNT($tableposts.ID) AS cat_count,";
    $query .= "  DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth";
    $query .= " FROM $tablecategories LEFT JOIN $tableposts ON cat_ID = post_category";
    $query .= " WHERE cat_ID > 0 ";
    $query .= " GROUP BY post_category ";
    if (intval($hide_empty) == 1) {
        $query .= " HAVING cat_count > 0";
    }
    $query .= " ORDER BY $sort_column $sort_order, post_date DESC";

    $categories = $wpdb->get_results($query);
    ++$querycount;
    echo "<select name='cat' class='postform'>\n";
    if (intval($optionall) == 1) {
        $all = apply_filters('list_cats', $all);
        echo "\t<option value='all'>$all</option>\n";
    }
    foreach ($categories as $category) {
        $cat_name = apply_filters('list_cats', $category->cat_name);
        echo "\t<option value=\"".$category->cat_ID."\"";
        if ($category->cat_ID == $cat)
            echo ' selected="selected"';
        echo '>'.stripslashes($cat_name);
        if (intval($optioncount) == 1) {
            echo '  ('.$category->cat_count.')';
        }
        if (intval($optiondates) == 1) {
            echo '  '.$category->lastday.'/'.$category->lastmonth;
        }
        echo "</option>\n";
    }
    echo "</select>\n";
}