It looks like adding current-cat-ancestor class to category list was proposed, but never implemented. The only way I've been able to find so far is to re-create the wp_list_categories() function entirely:
function wp_list_categories2($args = '') {
global $cat;
if($args == '')
$wp_list_categories = wp_list_categories();
else
$wp_list_categories = wp_list_categories($args);
$cat_id_cut1 = explode('cat-item-', $wp_list_categories);
for($i=1; $i<sizeof($cat_id_cut1); $i++) {
$cat_id_cut2 = explode('"><a', $cat_id_cut1[$i]);
$category_id_array[] = $cat_id_cut2[0];
}
for($i=0; $i<sizeof($category_id_array); $i++) {
if(is_numeric($category_id_array[$i])) {
if(cat_is_ancestor_of( $category_id_array[$i], $cat)) {
$wp_list_categories = str_replace($category_id_array[$i], $category_id_array[$i] . ' current-cat-ancestor', $wp_list_categories);
}
}
}
return $wp_list_categories;
}
is there a better way around this? Thanks!
start_el- method andwalkmethods. I'm not sure that's much better... – Stephen Harris Oct 1 '12 at 13:27