J'ai bien peur que ce ne soit pas possible nativement (encore?). Voir ce trac: http://core.trac.wordpress.org/ticket/18106
De même, sur la page d'administration de la taxonomie, le nombre de publications reflète tous les types de publication. ( Je suis quasiment sûr qu'il y a aussi un ticket Trac pour cela )
 http://core.trac.wordpress.org/ticket/14084
Voir aussi, ce poste connexe .
Nouvelle solution
Après avoir écrit celui ci-dessous, j'ai publié une bien meilleure façon (tout en ce sens que vous pouvez en faire plus) est d'utiliser les filtres fournis dans l' get_terms()appel. Vous pouvez créer une fonction wrapper qui utilise get_termset (conditionnellement) ajoute un filtre pour manipuler la requête SQL (à restreindre par type de publication).
La fonction prend les mêmes arguments que get_terms($taxonomies, $args). $argsprend l'argument supplémentaire post_typesqui prend un tableau | chaîne de types de messages.
Mais je ne peux pas garantir que tout fonctionne "comme prévu" (je pense rembourrer le décompte). Cela semble fonctionner en utilisant uniquement le par défaut $argsfor get_terms.
function wpse57444_get_terms( $taxonomies, $args=array() ){
    //Parse $args in case its a query string.
    $args = wp_parse_args($args);
    if( !empty($args['post_types']) ){
        $args['post_types'] = (array) $args['post_types'];
        add_filter( 'terms_clauses','wpse_filter_terms_by_cpt',10,3);
        function wpse_filter_terms_by_cpt( $pieces, $tax, $args){
            global $wpdb;
            // Don't use db count
            $pieces['fields'] .=", COUNT(*) " ;
            //Join extra tables to restrict by post type.
            $pieces['join'] .=" INNER JOIN $wpdb->term_relationships AS r ON r.term_taxonomy_id = tt.term_taxonomy_id 
                                INNER JOIN $wpdb->posts AS p ON p.ID = r.object_id ";
            // Restrict by post type and Group by term_id for COUNTing.
            $post_types_str = implode(',',$args['post_types']);
            $pieces['where'].= $wpdb->prepare(" AND p.post_type IN(%s) GROUP BY t.term_id", $post_types_str);
            remove_filter( current_filter(), __FUNCTION__ );
            return $pieces;
        }
    } // endif post_types set
    return get_terms($taxonomies, $args);           
}
Usage
$args =array(
    'hide_empty' => 0,
    'post_types' =>array('country','city'),
);
$terms = wpse57444_get_terms('flag',$args);
Contournement original
Inspiré du ticket Trac ci-dessus, (testé et cela fonctionne pour moi)
function wpse57444_filter_terms_by_cpt($taxonomy, $post_types=array() ){
    global $wpdb;
    $post_types=(array) $post_types;
    $key = 'wpse_terms'.md5($taxonomy.serialize($post_types));
    $results = wp_cache_get($key);
    if ( false === $results ) {
       $where =" WHERE 1=1";
       if( !empty($post_types) ){
            $post_types_str = implode(',',$post_types);
            $where.= $wpdb->prepare(" AND p.post_type IN(%s)", $post_types_str);
       }
       $where .= $wpdb->prepare(" AND tt.taxonomy = %s",$taxonomy);
       $query = "
          SELECT t.*, COUNT(*) 
          FROM $wpdb->terms AS t 
          INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id 
          INNER JOIN $wpdb->term_relationships AS r ON r.term_taxonomy_id = tt.term_taxonomy_id 
          INNER JOIN $wpdb->posts AS p ON p.ID = r.object_id 
          $where
          GROUP BY t.term_id";
       $results = $wpdb->get_results( $query );
       wp_cache_set( $key, $results );
    }        
    return $results;
}
Usage
 $terms = wpse57444_filter_terms_by_cpt('flag',array('country','city'));
ou 
 $terms = wpse57444_filter_terms_by_cpt('flag','country');