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
- Purpose
- Features
- Screenshots
- Download
- Installation
- Basic Usage
- Advanced Usage
- Add On Extensions
- Donate
- Version History and Changelog
- License
Purpose
Breadcrumb NavXT is a WordPress plugin compatible with WordPress versions 4.9 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)
- RDFa format Schema.org BreadcrumbList compatible breadcrumb generation.
- Extensive breadcrumb customization control via a settings page with appropriate default values for most use cases.
- Network admin settings page for managing breadcrumb settings for all subsites with configurable global priority.
- Built in WordPress Widget.
- Extensible via OOP and provided actions and filters.
- WPML compatible (enhanced compatibility with WPML extensions plugin).
- Polylang compatible (enhanced compatibility with Polylang extensions plugin).
- bbPress compatible (enhanced compatibility with bbPress extension plugin).
- BuddyPress compatible (enhanced compatibility with BuddyPress extension plugin).
Screenshots
Download
Latest Stable Release (Requires PHP7.0 or newer): Breadcrumb NavXT 7.3.1
Latest Stable PHP5.2 Compatible Release: Breadcrumb NavXT 5.1.1
Latest Testing Release: Breadcrumb NavXT SVN Trunk
Installation
- Download the plugin zip archive, see Download section.
- Disable any previous version of this plugin or Breadcrumb Navigation XT.
- Extract the contents of the zip archive into your plugins folder (wp-content/plugins).
- Enable the Breadcrumb NavXT plugin in the administration panel under the Plugins > Installed section.
- 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.
Donate
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
- 7.3.1 [6-27-2024]:
Bug fix: Fixed issue where$force
parameter wasn’t passed intobcn_breadcrumb_trail::fill()
withinbcn_display*()
functions.
Bug fix: Fixed improper textdomain existing within adminKit.
Bug fix: Fixed issue with$force
parameter where when it is not set the homepage breadcrumb would use the wrong template when calling the breadcrumb trail within the loop. - 7.3.0 [2-9-2024]:
Behavior change:bcn_display_json_ld()
now returns unescaped Unicode characters.
Behavior change:$force
parameter inbcn_display*()
functions is now passed tobcn_breadcrumb_trail::fill()
allowing generation of trails within the loop for the current loop item instead of the parent page/resource.
New feature: Breadcrumb Trail block rewritten to have feature parity with Breadcrumb NavXT Widget.
New feature: Breadcrumb Trail block supports basic styling within block editor.
Bug fix: Fixed error where$outer_template
argument was dropped withinbreadcrumb_navxt::display()
.
Bug fix: Fixed issue where boolean settings were not exported/imported properly.
Bug fix: Fixed cause of PHP error inbcn_breadcrumb_trail::maybe_add_post_type_arg()
when 3rd party code breaks the WP API.
Bug fix: Added check for proper queried object type for author archives. - 7.2.0 [2-9-2023]:
Behavior change: Settings reset sets option entry to blank array, consistent with the change to only storing non-default values in the database.
New feature: Addedbcn_display_separator
filter.
New feature: Add per setting indication if Network wide settings are overriding the local setting.
Bug fix: Improved compatibility with PHP8.1.
Bug fix: Fixed PHP errors caused by unexpected entries in WP Post Types array.
Bug fix: Settings help menu now shows up in the network settings page.
Bug fix: Fixed cause of ‘file not found’ error on the import/export/reset form in the network settings page. - 7.1.0 [7-17-2022]:
Behavior change:BCN_SETTINGS_FAVOR_*
constant behavior changed to take advantage of settings changes in 7.0.
Behavior change: Settings page now warns if it detected CPTs that were added too late.
New feature: Addedbcn_before_loop
filter which runs at the top ofbcn_breadcrumb_trail::display_loop()
.
New feature: Added JSON formatted settings import and export (successor to the old XML settings import/export format).
Bug fix: Fixed PHP error caused by term archives that don’t know the active term.
Bug fix: Fixed PHP error caused by introduction of namespacing in the legacy XML settings importer and exporter.
Bug fix: Explicitly set option autoload values, avoiding inappropriate default autoload values being used. - 7.0.2 [1-4-2022]:
Behavior change: Allow value ofHhome_template
,Hhome_template_unlinked
,hseparator
, andhseparator_higher_dim
to be overridden viabcn_settings_init
.
Bug fix: Fixed cause of “Sorry, you are not allowed to access this page.” message when attempting to visit the settings page. - 7.0.1 [12-27-2021]:
Behavior change: Movedbcn_settings_init
filter to before establishing default setting values. This filter is no longer capable of changing the default values of settings.
Behavior change: Moved setup of defaults to 9000 priority, intending to cover the majority of plugins that add CPTs.
Bug fix: Fixed compatibility issues with PHP5.6.
Bug fix: Fixed PHP error caused by some return value of page_ settings.
Bug fix: Fixed PHP error caused by non settings settings in array passed intoadminKit::settings_to_opts
.
Bug fix: Fixed issue withbcn_allowed_html
not covering admin interface elements (mappedbcn_allowed_html
tomtekk_adminkit_allowed_html
). - 7.0.0 [12-17-2021]:
Behavior change: Within thebcn_breadcrumb_trail
object instead of passing term id and taxonomy, aWP_Term
object is passed instead.
Behavior change: Attachments now use parent post type for post type argument.
New feature: Moved to adminKit 3.0
New feature: Corebcn_breadcrumb_trail
object now supports multi dimensional trails.
New feature: Addedbcn_opts_update_to_save
filter.
Bug fix: Fixed parameter order issue in REST controller that resulted in PHP Deprecated message in PHP8.
Bug fix: Updated REST controller endpoint registration for better WordPress 5.5+ compatibility.
Bug fix: Fixed compatibility issue with Widget settings not saving properly in WordPress 5.8.
Bug fix: Fixed issue with the position count parameter withinbcn_display
when outputting a trail in reverse order.
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.
Hi. How can I edit the style of text and margin ? Thank you.
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
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
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
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
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.
okay, nevermind! i figured out what to do by reviewing this thread. unclick the paged breadcrumb option!
I’ts a great plugin. I was wondering if there is any shortcode that I could use directly in the page.
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
Bonjourno John,
is there an option to set a text before the breadcrums begins? For example as: ‘ You are here: ‘ Home > next > next …
best regards
Oleorana
Babtista,
Just place that text before the calling code. There is no option for this as it is simple enough to do without an option.
-John Havlik