This may be overly simplistic, but have you tried changing is_home()
to is_category()
, in this line:
if ( is_home() && false == $query->query_vars['suppress_filters'] )
i.e. change it to this:
if ( is_category() && false == $query->query_vars['suppress_filters'] )
Worth a shot, anyway…