I would do it this way:
- get all sub-categories (include empty, set up hierarchically) as array
- retrieve the depth of the array in PHP (this part is taken (but adapted) from here)
Altogether, it’s the following code, which is bundled into a function, but could, of course, be used directly somewhere in a template file:
function get_category_depth($id = 0) {
$args = array(
'child_of' => $id,
'hide_empty' => 0,
'hierarchical' => 1,
);
$categories = get_categories($args)
if (empty($categories))
return 0;
$depth = 1;
$lines = explode("\n", print_r($categories, true));
foreach ($lines as $line)
$depth = max(
$depth,
(strlen($line) - strlen(ltrim($line))) / 4
);
return ceil(($depth - 1) / 2) + 1;
} // function get_category_depth
Please note that I did not test this.