How to display parent category name and link for custom breadcrumb

I’m currently trying to figure out how to display a categories parent / grand parents name and url for a custom breadcrumb I’m working on.

I simply need to know how to show the parent categories information on a child category page.

For example

if parent
blog

else if child 
blog > parent_category

else if grandchild
blog > grand_parent_category > parent_category

1 Answer
1

You can use get_ancestors:

<?php

if ( $term_ids = get_ancestors( get_queried_object_id(), 'category', 'taxonomy' ) ) {
    $crumbs = [];

    foreach ( $term_ids as $term_id ) {
        $term = get_term( $term_id, 'category' );

        if ( $term && ! is_wp_error( $term ) ) {
            $crumbs[] = sprintf( '<a href="https://wordpress.stackexchange.com/questions/225528/%s">%s</a>', esc_url( get_term_link( $term ) ), esc_html( $term->name ) );
        }
    }

    echo implode( ' > ', array_reverse( $crumbs ) );
}

Leave a Comment