In my current work I have to solve many problems for customers with WordPress websites. It’s common to see this scenario:
And then they want to implement something which might not be that hard, but it takes 5 hours to find out where is this function calling, which hook is doing what, which file has the content of this nonsense piece of code, etc.
Today I had to face this situation: the customer has a website to display products, most of them are linked to a category, but some of them don’t, and they want to display a generic category under those products.
In order to fix this, I had to implement an if statement to check whether the post has a category or not, in case it has, leave the old code running to display the proper category, and if not, display a custom message with a link to the generic category. Bla bla.
This is the code that allowed me to do that:
<?php
$terms = get_the_term_list( $post->ID, 'categories', '<li class="item">', ' . ', '</li>' );
echo $terms;
if(empty($terms)){
echo '<li class="collection_item"><a href="#">Generic Title</a></li>';
}
?>
I just had to use the get_the_term_list(); WP function explained here.