Breadcrumb NavXT

Breadcrumb NavXT, the successor to the popular WordPress plugin Breadcrumb Navigation XT, was written from the ground up to be better than its ancestor.

Table of Contents

  1. Purpose
  2. Features
  3. Download
  4. Installation
  5. Basic Usage
  6. Advanced Usage
  7. Add On Extensions
  8. Donate
  9. Version History and Changelog
  10. License


Examples of breadcrumbs Breadcrumb NavXT is a WordPress plugin compatible with WordPress versions 3.7 and up. This plugin generates locational breadcrumb trails for your WordPress blog. These represent the hierarchy leading up to the current page rather than the actual path taken to arrive at the current page.

Breadcrumb trails are a good supplementary navigation system that aid in site usability. This is especially true for sites using WordPress as a CMS. Since Breadcrumb NavXT reveals the page hierarchy in a consistent manner, it can provide SEO benefits. On the right are examples of breadcrumb trails generated by Breadcrumb NavXT. This website runs Breadcrumb NavXT, feel free to browse the various sections to see how Breadcrumb NavXT behaves.

Features (non-exhaustive)


Latest Stable Release (Requires PHP5.3.0 or newer): Breadcrumb NavXT 5.2.0
Latest Stable PHP5.2 Compatible Release: Breadcrumb NavXT 5.1.1
Latest Testing Release: Breadcrumb NavXT SVN Trunk


  1. Download the plugin zip archive, see Download section.
  2. Disable any previous version of this plugin or Breadcrumb Navigation XT.
  3. Extract the contents of the zip archive into your plugins folder (wp-content/plugins).
  4. Enable the Breadcrumb NavXT plugin in the administration panel under the Plugins > Installed section.
  5. Continue onto the Basic Usage section, or follow instructions given by your theme (if applicable).

Basic Usage

Depending on your theme this section may be unnecessary. If you are using berry as your theme everything is done for you so you have no further steps to take.

Open the appropriate file for your theme (typically header.php). This can be done within WordPress’ administration panel through Presentation > Theme Editor or through your favorite text editor. Place the following code where you want the breadcrumb trail to appear.

<div class="breadcrumbs" xmlns:v="">
	<?php if(function_exists('bcn_display'))

Save the file (upload if applicable). Now you should have a breadcrumb trail on your WordPress powered site. To customize the breadcrumb trail you may edit the default values for the options in the administrative interface. This is located in your administration panel under Settings > Breadcrumb NavXT.

Advanced Usage

Examples on some advanced usage situations are available in the documentation.

Add On Extensions

Breadcrumb NavXT’s functionality can be augmented with free and premium Add On Extensions. Visit the Breadcrumb NavXT Extensions Store to view all available extensions.

Love Breadcrumb NavXT? Want to help development? Feel free to make a donation:


Version History and Changelog

  • 5.2.0 [1-9-2014]:
    Deprecated: The Max Breadcrumb Length setting has been deprecated in favor of using CSS styling to perform the length limiting.
    Behavior change: The archive page for a post type is now generated for the top ancestor post rather than for the current page when “post parent” is used as the post’s hierarchy.
    Behavior change: Now requires PHP5.3 or newer.
    New feature: Added bcn_type_archive_post_type filter.
    New feature: Settings depending on another setting to be enabled are disabled when the dependency setting is disabled.
    New feature: More descriptive messages on settings saving (notify user on success, failure, and no changes to save).
    Bug fix: Fixed awkward wording in the settings page for post hierarchy settings.
    Bug fix: Fixed missed default templates for post formats when all taxonomy settings had the tax_ prefix added in 5.1.
    Bug fix: Fixed bulk of compatibility issues with bbPress.
  • 5.1.1 [7-29-2014]:
    Bug fix: Fixed issue where attachments and their parents have the same link when ‘link current item’ is enabled.
    Bug fix: Pass the same parameters into the widget title and (pre) text filters as the default WordPress widgets.
    Bug fix: Fixed issue where PHP warnings would be thrown on author pages for authors that do not have any posts.
    Bug fix: Reduced severity of $post global not being of type WP_Post, will silently exit on non-WP_DEBUG enabled sites.
  • 5.1.0 [6-9-2014]:
    Behavior change: bcn_breadcrumb_trail::do_post()) now expects to be passed in a valid WP_Post object.
    Behavior change: breadcrumb_navxt::version changed to a constant to allow uninstantiated access of the plugin version.
    New feature: Support Google’s RDFa Breadcrumbs microformat by default.
    New feature: Added bcn_opts_update_prebk filter.
    Bug fix: Validate HTML5 options on tab traversal.
    Bug fix: Fixed issue where the settings importer parsed the version string incorrectly.
    Bug fix: Added ‘typeof’ to list of valid HTML tag attributes.
    Bug fix: Prefixed all taxonomies with ‘tax_’ to prevent name collisions.
    Bug fix: Added ID to Post and Taxonomy Term Elements in bcn_breadcrumb_trail::do_root() as is done everywhere else.
    Bug fix: Fixed issue with bcn_breadcrumb_trail::do_author() returning the incorrect user under some circumstances.
    Bug fix: Fixed issue where saving twice on a tab in the settings page would cause the next page load to open the general tab rather than the current tab.
    Bug fix: Added bcn_breadcrumb_template filter back into bcn_breadcrumb::set_template(), was a regression in 5.0 from 4.4.
    Bug fix: Fixed issue where the included widget did not check against default settings, causing PHP Warnings to show up on the frontend under some circumstances.
    Bug fix: Fixed issue where we didn’t handle WP_POST::has_archive correctly when it was a string, causing issues with CPTs generated by some plugins.
    Bug fix: Fixed issue where the default taxonomy selected for a CPT could be a non-public taxonomy.
    Bug fix: Attachments get their own title within the settings page now.
    Bug fix: Filter the title and pre text in the widget.
  • 5.0.1 [12-31-2013]:
    Behavior Change: Notify multisite users when settings may be overridden by the network settings and vice versa.
    Bug fix: Updated tab style to match WordPress 3.8 look and feel.
    Bug fix: Fixed issue where bcn_breadcrumb_trail::display_list() would produce multiple instances of the class attribute.
    Bug fix: Fixed several issues with the uninstaller.
  • 5.0.0 [11-20-2013]:
    Behavior Change: Moved bcn_breadcrumb_trail::trail to bcn_breadcrumb_trail::breadcrumbs
    Behavior Change: When WordPress is in multisite/network mode, the settings set in the network settings page take priority over subsite settings.
    New feature: Added bcn_breadcrumb_trail_object filter.
    New feature: Added bcn_li_attributes filter.
    New feature: Added bcn_breadcrumb_types filter.
    New feature: Added Network Admin Settings page.
    New feature: Added xmlns:v and property to the valid tag attributes.
    Bug fix: The current_item breadcrumb for search results should result in a valid HTTPS link when appropriate.
  • 4.4.0 [6-21-2013]:
    New feature: Added bcn_breadcrumb_url filter.
    New feature: Add resource ID to the bcn_breadcrumb_title filter.
    New feature: Added bcn_breadcrumb_template filter.
    New feature: Added bcn_allowed_html filter.
    New feature: Added bcn_template_tags filter.
    Bug fix: Fixed issue where invalid characters could end up in URLs due to other plugins.
    Bug fix: Revise the allowed HTML for breadcrumbs in the trail.
  • 4.3.0 [2-13-2013]:
    Behavior change: Home and Mainsite titles were removed.
    Behavior change: All HTML capable strings are now passed through wp_kses.
    New feature: Added bcn_breadcrumb_url filter.
    New feature: %title% and %htitle% now are replaced with the the “Site Title” for the home breadcrumb and the “Network Name” for mainsite breadcrumbs.
    New feature: Support for the proposed Theme Hook Alliance tha_breadcrumb_navigation filter.
    New feature: Added %ftitle% and %fhtitle% tags that are not affected by bcn_breadcrumb::trim().
    Bug fix: Minor tweaks to the tabs in the admin page to better support the new version of jQuery UI tabs (in WordPress 3.5+).
    Bug fix: Fixed issue where initial settings were not being translated due to the text domain not loading.
    Bug fix: Added verbiage to clarify what the “Post Parent” selection for “Post Hierarchy” does.
  • 4.2.0 [9-28-2012]:
    Behavior change: Date archives are only available for the “post” post type.
    New feature: All Custom Post Types can now either use a post parent, or taxonomy based hierarchy.
    New feature: Post Format archives are now supported.
    New feature: Reorganized settings page with more responsive elements.
    Bug fix: Widget will now display properly when told to include the paged breadcrumb on the main posts archive.
    Bug fix: Using flat taxonomies as the post hierarchy no longer causes extraneous breadcrumb templates to be applied.
    Bug fix: Mainsite link now works on posts and pages in multisite environments.
    Bug fix: bcn_breadcrumb::title_trim() no longer cuts HTML encoded characters.
    Bug fix: bcn_breadcrumb::title_trim() no longer trims the title when the title length is equal to the max length.
  • 4.1.0 [6-5-2012]:
    Behavior change: Made the behaviour of posts using flat taxonomies match the behaviour of using a hierarchical taxonomy when the post is not assigned a taxonomy term.
    New feature: Custom Post Types that are hierarchical can now fall back to a taxonomy if they don’t have a parent.
    New feature: Pretext option for the included Widget, allows ‘You are here: ‘ type messages in the widget.
    Bug fix: Textdomain was changed to the correct one in the widget.
    Bug fix: Textdomain was changed from ‘breadcrumb_navxt’ to ‘breadcrumb-navxt’ for improved compatibility with the new GlotPress translation flow.
    Bug fix: Fixed cause of PHP warnings on empty term archive pages.
    Bug fix: Fixed cause of PHP warnings on term archives restricted to a specified post type.
    Bug fix: Fixed cause of PHP warnings and improper behavior on author archives if showing the page number in the breadcrumb trail.
  • 4.0.2 [2-17-2012]:
    New feature: Estonian translation added props to Martin Orn.
    New feature: Azerbaijani translation added props to Zaur Bayramov.
    Bug fix: Replaced deprecated RDFa and Microformat breadcrumbs with breadcrumbs support in the included sidebar widget.
    Bug fix: Mainsite breadcrumbs are linked once again.
    Bug fix: Safe default settings for CPTs and taxonomies should work now.
    Bug fix: Updated translations should work, previously the old ones loaded.
  • 4.0.1 [1-3-2012]:
    New feature: Norwegian translations added props to Jan Rosvoldsve.
    Bug fix: Fixed line 591 and line 646 errors in multisite installs.
    Bug fix: Attachments will now obey the root page setting for their parent, regardless of the parent’s post type.
  • 4.0.0 [12-14-2011]:
    Behavior change: Prefix, suffix, and anchor settings have been replaced with templates for all breadcrumb types.
    Behavior change: bcn_display_nested function was removed from the main plugin. Will appear in a supplementary plugin.
    Behavior change: Import/Export/Reset tab moved under the admin bar Help menu.
    Behavior change: Paged breadcrumbs are enabled in the default settings, among other subtle changes.
    New feature: More useful Help menu, utilizing the new WordPress 3.3 Help menu.
    New feature: True URLs are now generated for current items when link current item is enabled.
    New feature: The display of the custom post type archive breadcrumb for custom post types may now be disabled.
    New feature: Added in fallback functions for PHP’s multibyte character string functions for environments that do not have multibyte character support.
    Bug fix: Custom post type archives now respect the root page setting.
    Bug fix: Custom post types without WordPress post archives enabled will no longer cause a double root page breadcrumb to be generated.
    Bug fix: Tabs on the settings page are now rounded for all “modern” browsers, including Firefox, Chrome, and IE9.
    Bug fix: Tabs on the settings page are now remembered between setting saves (including multiple saves from within the same tab).
    Bug fix: Fixed another cause of the “The following settings were not saved” error message.

To keep this page at a reasonable length, only versions 3.9 and newer are present in this changelog. For the entire changelog, including versions of Breadcrumb Navigation XT, visit the Breadcrumb NavXT Changelog page.


Breadcrumb NavXT is released under the GNU GPL 2.0 license and comes with absolutely no warranty. By downloading Breadcrumb NavXT you agree to the terms of the GNU GPL 2.0 license.



  1. Pingback: In Depth: 14 handy WordPress tips and tricks - category number, content management system, custom homepage, Dashboard, EDIT, plug ins, site, tag id, Text, wordpress | Tricks And Tips And Solution Center

  2. Pingback: How to Add Breadcrumbs in a Thesis Wordpress Site

  3. Pingback: Adding Breadcrumb Navigation to the Photo Slider WordPress Portfolio Theme | Arthemed

  4. Pingback: The Cart Press – WordPress cart plugin review | Web design Port Talbot, Neath, Bridgend, Swansea, Cardiff, South Wales, UK

  5. Pingback: Breadcrumb-Navigation mit Microformat-Markups anhand Breadcrumb NavXT erstellen

19 thoughts on “Breadcrumb NavXT

    • Hi. Add this code to your style.css in the Theme editor:
      .breadcrumbs {
      padding: 7px;
      background: #eee;
      margin-bottom: 4px;
      font-size: 13px;

      .breadcrumbs a {
      text-decoration: none;
      font-weight: bold;

      You can see also an example live at ( if the admin approves :] )

  1. Hi John,

    I am trying your plugin by adding the breadcrumb in my single.php tp show category taxonomy. I am using categories that go 4-5 levels deep however the breadcrumbs only include the top 2. e.g I only see “home > cat 1 > cat 2 > post”. Cat 3+ are not shown.

    Is there a switch to increase this?


    • Brendan,

      Breadcrumb NavXT will pick the first hierarchical category structure it can find for a post, this may or may not be the deepest category hierarchy for that post. It is considered a best practice to not explicitly set a post to be a member of two categories within the same hierarchy (e.g. one that is a parent/grand parent/ great grand parent/etc or child/grand child/great grand chilt/etc).

      Breadcrumb NavXT has no limit to the depth of a category hierarchy that it will follow, and my testbed does test a 4 level deep hierarchy. I just double checked and the latest Breadcrumb NavXT behaves as expected in this case. One thing you should look into is ensuring that in your example, “post” isn’t explicitly set as a member of “cat 2″ and “cat 4″, keep it an explicit member of only the deepest category as it automatically becomes a implicit member of the other categories.

      -John Havlik

  2. Dear mtekk,

    I wholeheartedly second practically everyone on the great utility of this plug-in. Thanks so much!

    I’m using WordPress as a CMS for a website I’m developing, in which I’ve implemented a dropdown menu. Functionally, the menu headers are pages which serve as the parent for the actual content pages, but the menu header pages themselves are not accessible through the dropdown and lack content. Using your breadcrumb plug-in, however, these pages are linked back to, and I’m wondering whether it is possible to delink these altogether.

    Example: Home > Resources > Bibliography. In this hierarchy, Home is an actual page that should be linked, but the Resources page only exists for the purposes of the dropdown menu.

    In the architecture of my site, the second item in the hierarchy (following Home) will always be one of these placeholder pages for the dropdown. I’m wondering whether it is possible to make it so that every single second item will by default not be linked.

    Thanks much in advance! /Rudo

    • Rudo,

      While doing this is possible, it isn’t easy. I would suggest not having placeholder/blank pages. If you are going to create them, treat them like archives, and link to all the child pages. This is especially necessary if you are using hover/dropdown navigation menus for users of touchscreen devices (tablets and phones) as they do not support the hover gesture very well.

      If you really want to remove it, you’ll have to remove that breadcrumb from the trail after the trail has been filled, but before the output is assembled (look at the ‘bcn_after_fill’ action). Figuring out what breadcrumb you want to remove may not be very straight forward (the trail under normal circumstances is a stack/LIFO data structure).

      -John Havlik

  3. can you please advise if breadcrumb leaves a cookie on a person’s website? i am researching this for the EU cookie directive

    thank you in advance

    • thaqt,

      The base plugin of Breadcrumb NavXT has never, and will never (as long as I am the maintainer) use cookies or any other means to track users. It only uses what is available to WordPress to determine what page is being served to the user. Since Breadcrumb NavXT generates locational breadcrumb trails, there is no need to use cookies, or track where the user has gone on the site and that’s why I do not see there ever being a time in the future when Breadcrumb NavXT would need cookies.

      -John Havlik

  4. I’m using your breadcrumb plugin in my footer. For some reason the last thing it always points to is ‘page 1′. However, when I put it in the header it does not do this. how could I make it not display ‘page 1′ in the breadcrumb trail considering my application? You can view this at

    • Franson,

      Since a shortcode would have to be entered in the post content for every post/page, it really isn’t a great solution. It is better to place the calling code in your theme, and just remember to do this every time you change themes (which on a typical site is not that often). Something like this wouldn’t make it into the plugin itself, but may appear as an extension plugin at some future date.

      -John Havlik

Comments are closed.