Is there a way to use the word ‘and’ in the output of get_the_term_list?
<?php echo strip_tags(get_the_term_list( $post->ID, 'stijl', ' ',', ')); ?>
This code results in this output:
Onverwachte wending, Pakkend, Slasher, Slim, Spanning
But i want it to be:
Onverwachte wending, Pakkend, Slasher, Slim and Spanning
So basically i want the last comma to turn into ‘and’. Got no clue how to accomplish this. Is it even possible?
Advertisement
Answer
In WordPress, get_the_term_list returns a formatted version of get_the_terms,
which returns an array of the terms on the post. We can use this to customize the format of the list.
Typically when I do this I add something like the following to functions.php:
// In functions.php
function so_63957175_niceTermList($taxonomy = 'category') {
    global $post;
    $term_list = '';
    $terms = get_the_terms($post->ID, $taxonomy);
    $n = 1;
    if ($terms) {
        foreach($terms as $term) {
            if ($n < count($terms)) {
                $term_list .= $term->name . ', ';
            } else {
                $term_list = rtrim($term_list, ', ') .  ' and ' . $term->name;
            }
            ++$n;
        }
    }
    $term_list = rtrim($term_list, ', ');
    return $term_list;
}
// In your template file
<?php echo so_63957175_niceTermList('category'); ?>