Le code

add_filter( 'widget_posts_args', 'seomix_filter_widget_recentpost_currentcat');
function seomix_filter_widget_recentpost_currentcat( $args ) {
    if ( is_category() ) { // Pour les catégories
        $cat = get_queried_object();
        // Dans les catégories, les articles récents ne seront que ceux de la catégorie consultée
        $args['cat'] = $cat->term_id;
    } elseif ( is_single() ) { // pour les articles
        global $post;
        $cat = get_the_category( $post->ID );
        // On affichera uniquement les articles récents de la catégorie de l’article
        $args['category__in'] = $cat[0]->term_id;
        // On exclue l’article actuellement consulté
        $args['post__not_in'] = array( $post->ID );
    }
    return $args;
}