The custom_breadcrumbs
function generates a breadcrumb navigation for a WordPress site, dynamically creating links based on the type of content being viewed (like categories, posts, or archives). It starts with a link to the home page, then adds specific links depending on whether the viewer is on a post, category, taxonomy term, archive, or a regular page. The breadcrumbs are displayed as an unordered list in HTML, providing a navigational trail for users to follow back to the home page or other sections of the site.
function custom_breadcrumbs() { // Start of the breadcrumb list echo '<ul class="breadcrumbs">'; echo '<li><a href="' . get_home_url() . '">Home</a></li>'; // Check if the current view is a category, single post, taxonomy, or archive page if (is_category() || is_single() || is_tax() || is_archive()) { $post_type = get_post_type(); // If the post type is not a standard post, display its type in the breadcrumb if ($post_type != 'post') { $post_type_object = get_post_type_object($post_type); $post_type_archive = get_post_type_archive_link($post_type); echo '<li><a href="' . $post_type_archive . '">' . $post_type_object->labels->singular_name . '</a></li>'; } // If viewing a single post, display its categories in the breadcrumb if (is_single()) { $categories = get_the_category(); if ($categories) { foreach ($categories as $category) { echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>'; } } // Display the current post title echo '<li>' . get_the_title() . '</li>'; } elseif (is_tax()) { // If viewing a taxonomy, display the current term $current_term = get_queried_object(); echo '<li><a href="' . get_term_link($current_term) . '">' . $current_term->name . '</a></li>'; } elseif (is_archive()) { // If viewing an archive, display the archive title $archive_title = post_type_archive_title('', false); echo '<li>' . $archive_title . '</li>'; } } elseif (is_page()) { // If viewing a page, display the page title echo '<li>' . get_the_title() . '</li>'; } // End of the breadcrumb list echo '</ul>'; } // Function call to generate the breadcrumbs custom_breadcrumbs();