• I have been ripping through the forums to find a way to have the: ‘Filed under: ‘<category>’ to display only the parent category, even if there are children involved. I have found a half resolution for this in the code below:

    <?php
    foreach((get_the_category()) as $childcat) {
      $parentcat = $childcat->category_parent;
      echo get_cat_name($parentcat);
    }
    ?>

    This code properly shows the parent category instead of the child. The problem is that it is not a link to the category. Can anyone with some php knowledge modify the code above to allow the parent category to be a link.

Viewing 4 replies - 1 through 4 (of 4 total)
  • How about:

    <?php
    foreach((get_the_category()) as $childcat) {
    	$parentcat = $childcat->category_parent;
    	echo <a href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a>';
    }
    ?>

    https://codex.www.ads-software.com/Function_Reference/get_category_link

    Thread Starter Chris Whiteley

    (@thewhite)

    Thanks esmi,

    The code you provide worked exactly as I needed it to. The only problem is that original code I provided work fine in a category that has children. If the category is a childless parent then nothing is diplayed. I imagine there may be some kind of if statement that could be created, however as before my PHP skills are somewhat non existant. Any thoughts on how to do this

    also as a sidenote the echo was missing an opening quotation mark. Here is the corrected code for those who may need it

    <?php
    foreach((get_the_category()) as $childcat) {
    	$parentcat = $childcat->category_parent;
    	echo '<a href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a>';
    }
    ?>

    Sorry about the missing quote. My bad… What about:

    <?php
    foreach((get_the_category()) as $childcat) {
    	$parentcat = $childcat->category_parent;
    	if( $parent != 0 ) echo '<a href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a>';
    	else echo '<a href="' . get_category_link($child->id) .'">' .$child->cat_name .'</a>';
    }
    ?>
    Thread Starter Chris Whiteley

    (@thewhite)

    Again esmi, your help has been awesome. Thanks a billion.

    I had a few problems with the snippet that you presented me with but made a few edits with my super limited php skills and came up with this:

    <?php
    foreach((get_the_category()) as $childcat) {
    	$parentcat = $childcat->category_parent;
    	if( $parentcat != 0 ) echo '<a href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a>';
    	else echo '<a href="' . get_category_link($childcat) .'">' .$childcat->cat_name .'</a>';
    }
    ?>
Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Creating the Parent Category as a Link when using the_category’ is closed to new replies.