Retrieves a post’s terms as a list with specified format.
Description
Terms are linked to their respective term listing pages.
Parameters
$post_id
intrequired- Post ID.
$taxonomy
stringrequired- Taxonomy name.
$before
stringoptional- String to use before the terms.
Default:
''
$sep
stringoptional- String to use between the terms.
Default:
''
$after
stringoptional- String to use after the terms.
Default:
''
Source
function get_the_term_list( $post_id, $taxonomy, $before = '', $sep = '', $after = '' ) {
$terms = get_the_terms( $post_id, $taxonomy );
if ( is_wp_error( $terms ) ) {
return $terms;
}
if ( empty( $terms ) ) {
return false;
}
$links = array();
foreach ( $terms as $term ) {
$link = get_term_link( $term, $taxonomy );
if ( is_wp_error( $link ) ) {
return $link;
}
$links[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>';
}
/**
* Filters the term links for a given taxonomy.
*
* The dynamic portion of the hook name, `$taxonomy`, refers
* to the taxonomy slug.
*
* Possible hook names include:
*
* - `term_links-category`
* - `term_links-post_tag`
* - `term_links-post_format`
*
* @since 2.5.0
*
* @param string[] $links An array of term links.
*/
$term_links = apply_filters( "term_links-{$taxonomy}", $links ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
return $before . implode( $sep, $term_links ) . $after;
}
Hooks
- apply_filters( “term_links-{$taxonomy}”,
string[] $links ) Filters the term links for a given taxonomy.
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |
You can use this function with
strip_tags
function to print not linked term list:This prints something like this:
Designer, Front-end Developer, Developer
Basic Example
Used inside the loop this outputs the terms from the people taxonomy for a specific post.
This would return something like.
Returning an HTML List
Used inside the loop this outputs the terms from the styles taxonomy for a specific post as an (x)html list.
This would return something like.