How To Create A Link To Current Category In WordPress

    Omkar Bhagat
Listen to this article

While working on a client project, there was a requirement, where we had to include the name of the category and the category link in the post excerpt as well as the post itself. It’s a simple enough solution. And here’s what you need to do.


If you already know the Category Name..

To fetch the category link, you’ll have to first fetch the category ID. You can do this with the help of get_cat_ID function() function.

[pre]$category_id = get_cat_ID( ‘Category Name’ );[/pre]

Here you can get the ID of any category by specifying the name of the category, in place of ‘Category Name’. This ID is then saved inside a variable called $category_id.

[pre]$category_link = get_category_link( $category_id );[/pre]

We then pass this $category_id as a parameter in the function called get_category_link() and store the result in $category_link. Here we are basically storing the link inside a variable so as to display it later using the HTML code.

// Get the ID of a given category
$category_id = get_cat_ID( ‘Category Name’ );

// Get the URL of this category
$category_link = get_category_link( $category_id );

<a href=”<?php echo esc_url( $category_link ); ?>” title=”Category Name”>Category Name</a>[/pre]

The drawback of this method is that you need to specify the category name inside the function. If you want to fetch the category name itself then you need a slightly different approach here.


Fetching the post Category

To fetch the post category, you need to use something called as get_the_category() function.

[pre]$the_cat = get_the_category();[/pre]

This function returns the current post category if you use it inside a loop. However if you want to use it outside of the loop then you’ll need to pass the post ID as a parameter.

[pre]$the_cat = get_the_category( $id );[/pre]

Once we fetch the categories, we will fetch the category name of the first category in the array.

[pre]$category_name = $the_cat[0]->cat_name;[/pre]

After getting the category name, we simply use the previous code and replace ‘Category Name’ with the variable $category_name.

[pre]$category_id = get_cat_ID( $category_name );
$category_link = get_category_link( $category_id );[/pre]


Or we can write these two lines in one single line as follows –

[pre]$category_link = get_category_link( $the_cat[0]->cat_ID );[/pre]


The final code to fetch category name and category link

$the_cat = get_the_category();
$category_name = $the_cat[0]->cat_name;
$category_link = get_category_link( $the_cat[0]->cat_ID );


<a href=”<?php echo $category_link ?>”
title=”<?php echo $category_name ?>”  >
<?php echo $category_name ?>

Place this code inside content.php or single.php or if you want to use it outside of the loop then simply make a small adjustment and add post_id as a parameter inside get_the_category() function and you’re good to go!

Omkar Bhagat

Omkar Bhagat

Leave a Reply

Your email address will not be published. Required fields are marked *

Get The Latest Updates

Subscribe to our Newsletter

A key to unlock the world of open-source. We promise not to spam your inbox.

Suggested Reads

Join our 55,000+ Subscribers

    The Wisdm Digest delivers all the latest news, and resources from the world of open-source businesses to your inbox.

    Suggested Reads