De http://codex.wordpress.com :
$categories = get_categories( $args );
$args = array(
'type' => 'post',
'child_of' => 0,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'category',
'pad_counts' => false
);
Je pensais que ce type était le type de message. Mais non. C'est le type de catégorie à récupérer. J'ai recherché sans succès.
Alors, aucune idée sur la façon de récupérer toutes les catégories attribuées à toutes les publications d'un type de publication spécifique?
Une solution de force brute qui convient à toute relation post-taxonomie:
global $wpdb;
// set the target relationship here
$post_type = 'post';
$taxonomy = 'category';
$terms_ids = $wpdb->get_col( $wpdb->prepare( "
SELECT
tt.term_id
FROM
{$wpdb->term_relationships} tr,
{$wpdb->term_taxonomy} tt,
{$wpdb->posts} p
WHERE 1=1
AND tr.object_id = p.id
AND p.post_type = '%s'
AND p.post_status = 'publish'
AND tr.term_taxonomy_id = tt.term_taxonomy_id
AND tt.taxonomy ='%s'
", $post_type, $taxonomy ) );
// here you are
$terms = get_terms( $taxonomy, array(
'include' => $terms_ids,
'orderby' => 'name',
'order' => 'ASC'
) );