skip to Main Content

Looking to display all category names for wordpress posts on a specific post.

So if a post is in “web design, seo and social media” i want these category names to display on the post – and NOT all the other categories such as “app design” which it is not related too.

<p>
    <?php $category = get_the_category();
    echo $category[0]->cat_name;
    echo " / ";
    echo $category[1]->cat_name;
    echo " / ";
    echo $category[2]->cat_name;
    ?>
</p>

this works currently but if there is only 1 category then i get extra / on the end of the displayed text.

Can someone else with a loop that works better?

2

Answers


  1. $categories = get_the_category();
    $cat_id     = $categories[0]->term_id;
    
    foreach ( $categories as $i => $category ) {
        echo '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" >' . esc_html( $category->name ).'</a>';
        if ( $i < $count - 1 )
            echo $separator;
    }
    

    Hope it will help you.

    Login or Signup to reply.
  2. Your code show undefines the $count variable but when I use this code it shows some categories.

      <?php
                      $categories = get_the_category();
                      $cat_id     = $categories[0]->term_id;
    
                      foreach ( $categories as $i => $category ) {
                          echo '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" >' . esc_html( $category->name ).'</a>';
                          if ( $i < 'count - 1' )
                              echo $separator;
                      }
    
                   ?>
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search