AnswerBun.com

How do I get the category URL from get_the_category?

My loop below shows the latest 4 posts from the same category as the post currently being viewed. Its located within single.php.

I’m trying to get the URL of that same category so I can link back to category.php to view all posts from that same category. I thought grabbing the category slug would work but my code below doesn’t output anything:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link to actual post</a>

    <?php } endforeach; ?>

<a href="<?php bloginfo('url'); ?>/categories/<?php echo $childcat->cat_slug; ?>" title="View all" class="btn border"><i class="i-right-double-arrow"></i> View all <?php echo $childcat->cat_slug; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>

WordPress Development Asked by egr103 on December 28, 2020

2 Answers

2 Answers

Use:

get_category_link( $category_id );

See:

https://codex.wordpress.org/Function_Reference/get_category_link

In your specific case:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link to actual post</a>

    <?php } endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" title="View all" class="btn border"><i class="i-right-double-arrow"></i> View all <?php echo $category->name; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>

Correct answer by Adam on December 28, 2020

A STRAIGHT FORWARD AND CLEAN CODE

I'm a newbie :)

I modified the codes given by Adam and removed the unnecessary parts not needed to answer the initial question.

It worked for me 100%.

Give it a try.

Please let me know if it worked for you too :)

<?php $categories = get_the_category();
foreach ($categories as $category) :
endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  LINK TO CURRENT POST CATEGORY >>
</a>

OR

<?php $categories = get_the_category();
foreach ($categories as $category) : ?>

The category is:
<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  <?php echo $category->name; ?>
</a>

<?php endforeach; ?>

COMBINE SOME OTHER ELEMENTS AS YOU LIKE. PLAY AROUND BUDDY.

Answered by Mrbiizy on December 28, 2020

Add your own answers!

Related Questions

Single template showing all posts of that type

0  Asked on October 30, 2021 by aaron4osu

   

Get categories from save_post hook

1  Asked on October 30, 2021 by malago

 

WooCommerce sku location in DB

1  Asked on October 30, 2021

 

How to add multiple footer widgets?

1  Asked on October 30, 2021

 

Randomize attachment IDs

1  Asked on October 30, 2021

       

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.