Check if post belongs to any category

In my homepage loop, I have something that will show which category the post is in. It will say something like “Posted 4 hours ago in Sports by …”. However, when there is no category set, it will omit the category (obviously) and just say “Posted 4 hours ago in by …”. My question is: how do I check if a post belongs to any category in WordPress.

I know that the function in_category() exists, but I would like to avoid having to type out all of the categories, in case they change, or whatever.

Read More

Thanks!

Related posts

Leave a Reply

3 comments

  1. Instead of using get_category() or whatever to echo it out directly, try using get_the_category(), which will simply return an array of the categories. You can then spin through those items and check if they are empty() or not.

    Maybe something like:

    $categories = get_the_category( $post->ID );
    if( is_array(categories) && count($categories) > 0 ) {
      foreach( $categories as $category ) {
        $categories_string .= $category . ", ";
      }
      $categories_string = rtrim(", ", $categories_string);
    }
    
    if( !empty( $categories_string ) ) {
      echo "Posted 4 hours ago in {$categories_string} by ...";
    } else {
      echo "Posted 4 hours ago by ...";
    } 
    

    *untested