The get_the_taxonomies() WordPress PHP function retrieves all taxonomies associated with a post.
Usage
get_the_taxonomies( $post, $args );
Custom example:
get_the_taxonomies( 42, array( 'template' => 'Taxonomy: %s', 'term_template' => '<a href="%1$s">%2$s</a>' ) );
Parameters
$post(int|WP_Post, Optional) – Post ID or WP_Post object. Default is global$post.$args(array, Optional) – Arguments about how to format the list of taxonomies.template(string) – Template for displaying a taxonomy label and list of terms. Default is “Label: Terms.”term_template(string) – Template for displaying a single term in the list. Default is the term name linked to its archive.
More information
See WordPress Developer Resources: get_the_taxonomies()
Examples
Displaying post taxonomies
This example displays all taxonomies associated with the current post in the loop.
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$taxonomies = get_the_taxonomies();
foreach ( $taxonomies as $taxonomy ) {
echo $taxonomy;
}
}
}
Displaying custom taxonomies
This example displays custom taxonomies associated with a specific post ID.
$post_id = 42;
$taxonomies = get_the_taxonomies( $post_id );
foreach ( $taxonomies as $taxonomy ) {
echo $taxonomy;
}
Modifying taxonomy display
This example modifies how taxonomies are displayed using custom templates.
$args = array(
'template' => '<strong>%s:</strong> %l',
'term_template' => '<a href="%1$s">%2$s</a>'
);
$taxonomies = get_the_taxonomies( null, $args );
foreach ( $taxonomies as $taxonomy ) {
echo $taxonomy;
}
Displaying taxonomies for custom post type
This example displays taxonomies for a custom post type.
$args = array(
'post_type' => 'my_custom_post_type',
);
$custom_posts = new WP_Query( $args );
if ( $custom_posts->have_posts() ) {
while ( $custom_posts->have_posts() ) {
$custom_posts->the_post();
$taxonomies = get_the_taxonomies();
foreach ( $taxonomies as $taxonomy ) {
echo $taxonomy;
}
}
}
Removing taxonomy name
This example removes the taxonomy name for a plugin that extracts words for static search.
add_filter( 'wp_sprintf', function( $fragment ) {
$fragment = ( '%z' === $fragment ) ? '' : $fragment;
return $fragment;
} );
while ( have_posts() ) {
the_post();
$terms = get_the_taxonomies( 0, array( 'template' => '%z%l', 'term_template' => '%2$s' ) );
echo implode( ' ', $terms );
}