All posts
Published in wordpress

How to Add Breadcrumbs to Your WordPress Site Using PHP

Profile image of Atakan Demircioğlu
By Atakan Demircioğlu
Fullstack Developer

Breadcrumbs are a valuable navigational tool for enhancing user experience on your WordPress site. They provide a trail of links that show users their current position within the site’s hierarchy, helping them easily navigate back to previous pages. Adding breadcrumbs can improve SEO and make your site more user-friendly. In this article, we’ll guide you through the process of adding breadcrumbs to your WordPress site using PHP.

Why Add Breadcrumbs to Your WordPress Site?

  1. Improved Navigation: Breadcrumbs offer users a straightforward way to navigate through your site’s structure, especially on content-rich sites with multiple levels.
  2. Enhanced User Experience: By showing users their location within the site, breadcrumbs help prevent them from feeling lost and improve their overall experience.
  3. SEO Benefits: Breadcrumbs can enhance your site's SEO by providing search engines with a clear understanding of your site's structure and hierarchy, potentially improving your search visibility.

Method 1: Adding Breadcrumbs Using PHP in Your Theme

If you prefer not to use a plugin, you can add breadcrumbs directly to your WordPress theme using PHP. Here’s a step-by-step guide:

1. Edit Your Theme Files

You’ll need to add breadcrumb functionality to your theme’s functions.php file and display them in your template files.

a. Add Breadcrumb Function to functions.php

Open your theme’s functions.php file (located in your theme’s folder) and add the following PHP code to create a basic breadcrumb function:

function custom_breadcrumbs() {
    // Settings

    $separator = ' > ';
    $home = 'Home'; // Text for the 'Home' link

    $blog = 'Blog'; // Text for the 'Blog' link (if applicable)

    
    // Display breadcrumbs

    echo '<div class="breadcrumbs">';
    
    // Home

    echo '<a href="' . home_url() . '">' . $home . '</a>' . $separator;
    
    // Blog

    if (is_home() || is_front_page()) {
        echo $blog;
    } else {
        // Post

        if (is_single()) {
            $categories = get_the_category();
            if (!empty($categories)) {
                $category = $categories[0];
                echo '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>' . $separator;
            }
            echo '<span>' . get_the_title() . '</span>';
        }
        // Page

        elseif (is_page()) {
            if ($post->post_parent) {
                $ancestors = array_reverse(get_post_ancestors($post->ID));
                foreach ($ancestors as $ancestor) {
                    echo '<a href="' . get_permalink($ancestor) . '">' . get_the_title($ancestor) . '</a>' . $separator;
                }
            }
            echo '<span>' . get_the_title() . '</span>';
        }
    }
    
    echo '</div>';
}

b. Display Breadcrumbs in Your Template

Insert the breadcrumb function where you want breadcrumbs to appear in your theme’s template files. For example, you might want to add them to single.php, page.php, or header.php:

<?php if (function_exists('custom_breadcrumbs')) custom_breadcrumbs(); ?>

Method 2: Using a Plugin

For those who prefer not to write PHP code, several plugins can add breadcrumbs to your WordPress site easily:

  1. Yoast SEO: A popular SEO plugin that includes a breadcrumb feature.
    • Install and activate the Yoast SEO plugin.
    • Go to SEO > Search Appearance > Breadcrumbs.
    • Enable breadcrumbs and configure the settings as desired.
    • Add the breadcrumb function to your theme by following the plugin’s instructions (usually involves inserting a PHP snippet into your theme files).
  2. Breadcrumb NavXT: A dedicated breadcrumb plugin with extensive customization options.
    • Install and activate the Breadcrumb NavXT plugin.
    • Configure the plugin settings by navigating to Settings > Breadcrumb NavXT.
    • Insert the breadcrumb function into your theme using the provided PHP code snippet (usually found in the plugin’s settings or documentation).

Customizing Breadcrumbs

Whether you use a custom PHP function or a plugin, you may want to style your breadcrumbs to match your site’s design. Add CSS to your theme’s stylesheet to style the breadcrumb container, links, and separators. Here’s a basic example:

.breadcrumbs {
    font-size: 14px;
    margin: 10px 0;
}

.breadcrumbs a {
    text-decoration: none;
    color: #0073aa;
}

.breadcrumbs a:hover {
    text-decoration: underline;
}

.breadcrumbs span {
    color: #555;
}

Conclusion

Adding breadcrumbs to your WordPress site is a straightforward way to enhance navigation and improve user experience. Whether you choose to implement breadcrumbs using custom PHP code or a plugin, the process can significantly benefit both users and search engines. By following this guide, you’ll be able to integrate breadcrumbs seamlessly into your WordPress site, helping visitors find their way with ease.