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. Screenshots
  4. Download
  5. Installation
  6. Basic Usage
  7. Advanced Usage
  8. Add On Extensions
  9. Donate
  10. Version History and Changelog
  11. License

Purpose

Breadcrumb NavXT is a WordPress plugin compatible with WordPress versions 4.0 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. This website runs Breadcrumb NavXT, feel free to browse the various sections to see how Breadcrumb NavXT behaves.

Features (non-exhaustive)

Screenshots

Download

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

Installation

  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" typeof="BreadcrumbList" vocab="https://schema.org/">
    <?php if(function_exists('bcn_display'))
    {
        bcn_display();
    }?>
</div>

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:

Translations

Breadcrumb NavXT now supports WordPress.org language packs. Want to translate Breadcrumb NavXT? Visit Breadcrumb NavXT’s WordPress.org translation project.

Version History and Changelog

  • 6.2.1 [10-26-2018]:
    Behavior change: Added span element wrapping the breadcrumb title in the default unlinked breadcrumb template.
    Bug fix: Fixed issue that caused PHP warnings and “the following settings were not saved” messages for hierarchical CPTs.
  • 6.2.0 [9-24-2018]:
    Behavior change: Cleaned up translations for default templates, simplifying and clarifying the translatable content.
    Behavior change: Default unlinked breadcrumb templates no longer contain Schema.org BreadcrumbList markup.
    Behavior change: Breadcrumb NavXT REST API endpoints are no longer enabled by default.
    New feature: Added bcn_register_rest_endpoint filter.
    New feature: Added bcn_breadcrumb_assemble_json_ld_array filter.
    New feature: Added support for following the post parent hierarchy first then falling back to a secondary hierarchy.
    Bug fix: Fixed issue where on loading the settings page immediately after migrating settings causes PHP warnings on CPT and custom taxonomy settings.
    Bug fix: Fixed issue that caused the settings reset option under the help drop down to not work.
  • 6.1.0 [6-1-2018]:
    Behavior change: Links to generate support requests migrated to the WordPress.org forums.
    New feature: Added support for Schema.org BreadcrumbList (microdata format) in the included widget.
    New feature: Added new Root Page support for author archives.
    New feature: Added REST API endpoint for posts, terms, and author archives.
    Bug fix: Corrected label for the Schema.org BreadcrumbList (RDFa format) option in the included widget.
    Bug fix: Fixed issue where a PHP warning would be thrown due to get_term() returning something other than an instance of WP_Term.
  • 6.0.4 [1-26-2018]:
    Behavior change: Added auto migration of post type hierarchy settings to bcn_display*() functions.
    Bug fix: Fixed issue where a PHP notice would be generated on the page for posts when the blog breadcrumb display option is set to false.
    Bug fix: Fixed issue where a PHP notice would be generated on archive pages where attachments were included in the wp_query results.
  • 6.0.3 [1-1-2018]:
    Bug fix: Fixed issue where an improper breadcrumb would be generated in the trail for pages under some circumstances.
    Bug fix: Fixed issue where the post and page roots were not updating to track user changes in Settings > Reading.
  • 6.0.2 [12-30-2017]:
    Behavior change: Added warning alerting that bcn_breadcrumb::type must be an array.
    Bug fix: Changed Breadcrumb Separator and Paged Template from an input field to a textbox to reduce confusion caused by HTML entities.
    Bug fix: Fixed issue where the parents of a page may not show up in the breadcrumb trail.
    Bug fix: Fixed issue where the $reverse parameter for bcn_display and bcn_display_list did not work properly.
    Bug fix: Fixed issue where the bcn_display_list function did not include the li elements.
  • 6.0.1 [12-28-2017]:
    Behavior change: Removed unused Blog Template and Blog Template (Unlinked) from settings page.
    Bug fix: Fixed issue where changes to the hierarchy type for any post type would not save.
    Bug fix: Fixed issue where the blog display setting was ignored.
  • 6.0.0 [12-26-2017]:
    Behavior change: bcn_breadcrumb_trail::display_list() deprecated in favor of using the $template parameter in bcn_breadcrumb_trail::display().
    Behavior change: bcn_breadcrumb_trail::do_attachment() deprecated in favor of calling bcn_breadcrumb_trail::do_post().
    Behavior change: bcn_breadcrumb_trail::do_front_page() deprecated in favor of calling bcn_breadcrumb_trail::do_home().
    Behavior change: bcn_li_attributes filter was deprecated in favor of bcn_display_attributes.
    Behavior change: bcn_breadcrumb_trail::do_archive_by_date() deprecated in favor of calling bcn_breadcrumb_trail::do_day(), bcn_breadcrumb_trail::do_month(), andy/or bcn_breadcrumb_trail::do_year().
    Behavior change: bcn_breadcrumb_trail::find_type() deprecated and removed from bcn_breadcrumb_trail.
    Behavior change: Breadcrumb for 404 error pages changed to be a child of the front page.
    New feature: Added support for various HTML tags in the widget’s pretext field.
    New feature: Added bcn_default_hierarchy_display filter.
    New feature: Added bcn_default_hierarchy_type filter.
    New feature: Added $posttype_name as the third parameter to bcn_show_tax_private.
    Bug fix: Fixed UI/UX issue in the settings screen where enabling/disabling settings groups for the Home, Blog, and Mainsite breadcrumb settings did not work.
    Bug fix: Fixed UI/UX issue in the settings screen where not including the paged breadcrumb still allowed the paged breadcrumb template to be edited.
    Bug fix: Removed use of create_function in registering the widget as it was deprecated in PHP7.2.
  • 5.7.1 [6-30-2017]:
    Bug fix: Fixed erroneous use of $linked that caused a PHP warning in bcn_display_json_ld().
    Bug fix: Fixed issue where removing a breadcrumb from the trail could cause one or more breadcrumb separators to inappropriately disappear.
  • 5.7.0 [4-21-2017]:
    New feature: Added bcn_display_json_ld() function for producing Schema.org BreadcrumbList compliant JSON-LD markup.
    Bug fix: Fixed issue where the uninstaller caused PHP Errors when ran from WP CLI.
    Bug fix: Fixed issue where bcn_breadcrumb_trail::find_type() caused a PHP Warnings in certain circumstances.
    Bug fix: Fixed typo in the administrative interface.
  • 5.6.0 [12-23-2016]:
    New feature: Added fourth parameter, $force, to bcn_display(), and bcn_display_list() allowing the internal caching mechanism to be bypassed.
    New feature: Moved to multiple line text boxes rather than regular single line text inputs for the breadcrumb templates in the settings page to enhance visibility.
    Bug fix: Fixed issue where general searches had the blog breadcrumb in the breadcrumb trail.
    Bug fix: Fixed issue where the blog breadcrumb options were erroneously made available when a Posts Page was not set.
  • 5.5.2 [9-30-2016]:
    Bug fix: Fixed issue where the “blog breadcrumb” setting does not affect the inclusion of the blog breadcrumb in the breadcrumb trail.
  • 5.5.1 [8-13-2016]:
    Bug fix: Fixed issue in bcn_breadcrumb_trail::find_type() that identified pages as posts, causing the erroneous inclusion of the post root in the breadcrumb trail for pages.
  • 5.5.0 [8-12-2016]:
    Behavior change: Internal mechanics to handle post parents as the hierarchy for a post (of any post type) has changed to use ‘BCN_POST_PARENT’ rather than ‘page’ for the taxonomy_type.
    Behavior change: Internal mechanics to handle dates as the hierarchy for a post (of any post type) has changed to use ‘BCN_DATE’ rather than ‘date’ for the taxonomy_type.
    Behavior change: Taxonomy term hierarchy selection logic in bcn_breadcrumb_trail::pick_post_term() has changed to picking the deepest known child of the first hierarchy found in the list of terms returned by get_the_terms() rather than the first term with a child.
    New feature: Added support for referer influenced taxonomy selection for a post’s (any post type) breadcrumb trail.
    New feature: Added translate and lang as valid attributes for tags within breadcrumb templates.
    New feature: Added srcset and sizes as valid attributes for img tags within breadcrumb templates.
    New feature: Added itemprop as a valid attribute for the meta tags within breadcrumb templates.
    Bug fix: Fixed various issues caused by other plugins/themes modifying the $post global.
    Bug fix: Fixed issue where WPML Extensions would cause a CPT without a set root page to use the Post post type’s root page.

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

License

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.

on

Trackbacks/Pingbacks

  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;
      color:#0489B1;
      font-size: 13px;

      }
      .breadcrumbs a {
      color:#0489B1;
      text-decoration: none;
      font-weight: bold;
      }

      You can see also an example live at ( if the admin approves :] ) http://www.nasil.gen.tr/css-margin.html

  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

    • 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 http://www.cwws.org.

    • 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.