OK so I wanted the parent category title to display in the category.php template file which led me to write the following handy function.
function nnm_get_the_term_parent(){
global $wp_query;
$cat = $wp_query->get_queried_object();
if($cat->parent == 0) {
$id = $cat->term_id;
} else {
$id = $cat->parent;
}
$term_object = get_term($id,'category');
if($term_object) {
return $term_object;
} else {
return false;
}
}
So above we’re getting the data about which page we’re on, checking whether it is a top level category, if so we assign it’s id to the $id variable otherwise we assign the parent id. Then we get the term from the ‘category’ taxonomy, you can change this to ‘post_tag’ or any custom taxonomy you have registered. Finally we do a quick check it has worked and then fire the object back on success.
The initial function above would go in your functions.php file, and because I’ve queried the ‘category’ taxonomy I need to include the below code in my category.php template, if you went for ‘post_tag’ you would add it to tag.php.
<?php $parent = nnm_get_the_term_parent(); ?> <?php // print_r($parent); ?> <h3 class="parent-category"><?= $parent->name; ?></h3>
That’s pretty much all there is to it, uncomment the 2nd line to output the term object to screen.
