get_the_term_list without links in 3.1

The question:

What function will display custom taxonomies associated with a post as text?

I’m currently using get_the_term_list which works great for a singular page but not so much when using a taxonomy in the archive-postype.php permalink title tag.

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

wp_get_object_terms() returns the terms associated with an object (eg a post or a page or custom post) as text (normally in an array).

From the Codex page for wp_get_object_terms()

$productcategories = wp_get_object_terms($post->ID, 'productcategories');

Method 2

However @anu is right, I figured out you can call the php function strip_tags to strip out the tags of the return value.

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );

Method 3

$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

Here $terms is an array, so you can use a foreach loop.

foreach( $terms as $term ) {
  echo $term;

Method 4

I think the best way is to implement a filter for the term list, that extract via regexp only the text, from the list

get_the_terms_list() is implemented here:

 $term_links = apply_filters( "term_links-$taxonomy", $term_links );

You can implement you own filter.

Method 5

I need the same and tried Zack solution that works great. For instance, if you need onlye the term to put in css id or class.
Only one anotation about the solution, the function is bad called, properly is “get_the_term_list”.

I show my example:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment