Não há filtro para a saída dessa função. Você pode bifurcar (copiar / renomear / editar) ou adicionar wrapper que irá substituir as strings na saída desta forma:
function short_time_diff( $from, $to = '' ) {
$diff = human_time_diff($from,$to);
$replace = array(
'hour' => 'h',
'hours' => 'h',
'day' => 'd',
'days' => 'd',
);
return strtr($diff,$replace);
}
Afterthought de PS - na verdade, as strings são localizadas para que haja um filtro de tradução a ser usado ... Mas o material a ser substituído é genérico e isso arrisca quebrá-lo em outro lugar.
UPDATE
Desde o WP 4.0, existe um filtro disponível para human_time_diff
:
add_filter( 'human_time_diff', function($since, $diff, $from, $to) {
$replace = array(
'hour' => 'h',
'hours' => 'h',
'day' => 'd',
'days' => 'd',
);
return strtr($since, $replace);
}, 10, 4 );