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
Purpose
Breadcrumb NavXT is a WordPress plugin compatible with WordPress versions 2.6 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. To the right are examples of breadcrumb trails generated by Breadcrumb NavXT.
Download
Latest Stable Release: Breadcrumb NavXT 3.4.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. If you are a theme developer visit the documentation for examples on how to directly access the bcn_breadcrumb_trail class. Otherwise keep reading.
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="breadcrumb">
<?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.
Version History and Changelog
- 3.5.0 [??-??-2010]:
New feature: Widget rewritten to use the WordPress 2.8 Widget API, now multi-widget capable.
New feature: Widget output can be in list form, can be in reversed order, and can be unlinked.
Bug fix: Fixed issue where the current tab was forgotten after a save in the settings page.
Bug fix: Fixed various WP API issues with WordPress 3.0. - 3.4.1 [12-23-2009]:
Bug fix: Fixed issue with PHP unexpected $end on line 1567 in breadcrumb_navxt_admin.php.
Bug fix: Fixed issue where the %link% anchor tag would not be replaced with a URI for flat taxonomies (e.g. tags).
Bug fix: Fixed issue where paged breadcrumbs would cause WP_Error objects to be thrown. - 3.4.0 [12-17-2009]:
New feature: Proper support of custom taxonomies.category_parentsandpost_tagsreplaced withterm_parentsandpost_terms.
New feature: Ability to use date as post “taxonomy”.
New feature: Translations for Italian now included thanks to Luca Camellini.
Bug fix: Fixed permalink for day breadcrumbs.
Bug fix: Flat taxonomy archive breadcrumbs now are surrounded by both the standard and archive prefix/suffix combination. - 3.3.0 [8-3-2009]:
Behavior change: The core plugin was removed, and administrative plugin renamed, direct class access still possible.
New feature: Ability to trim the title length for all breadcrumbs in the trail.
New feature: Ability to selectively include the “Blog” in addition to the “Home” breadcrumb in the trail (for static front page setups).
New feature: Translations for Russian now included thanks to Yuri Gribov.
New feature: Translations for Swedish now included thanks to Patrik Spathon.
Bug fix: Minor tweaks to the settings link in the plugins listing page so that it fits better in WordPress 2.8.
Bug fix: Now selects the first category hierarchy of a post instead of the last. - 3.2.1 [5-29-2009]:
New feature: Translations for Belorussian now included thanks to “Fat Cow”.
Bug fix: Thebcn_display()andbcn_display_list()wrapper functions obey the
$returnparameter.
Bug fix: Anchors now will be valid html even when a page/category/post title has html tags in it.
Bug fix: Revisedbcn_breadcrumb_trail::category_parentsto work around a bug inget_categorythat causes a WP_Error to be thrown.
Bug fix: Importing settings XML files should no longer corrupt html entities.
Bug fix: Can no longer import and reset options at the same time.
Bug fix: WordPress 2.6 should be supported again. - 3.2.0 [5-4-2009]:
New feature: Now can output breadcrumbs in trail as list elements.
New feature: Translations for Dutch now included thanks to Stan Lenssen.
New feature: Now breadcrumb trails can be output in reverse order.
New feature: Ability to reset to default option values in administrative interface.
New feature: Ability to export settings to a XML file.
New feature: Ability to import settings from a XML file.
Bug fix: Anchor templates now protected against complete clearing.
Bug fix: Administrative interface related styling and JavaScript no longer leaks to other admin pages.
Bug fix: Callingbcn_display()works with the same inputs asbcn_breadcrumb_trail::display().
Bug fix: Callingbcn_display()multiple times will not place duplicate breadcrumbs into the trail. - 3.1.0 [1-26-2009]:
New feature: Tabular plugin integrated into the administrative interface/settings page plugin.
New feature: Default options now are localized.
New feature: Plugin uninstaller following the WordPress plugin uninstaller API.
Bug fix: Administrative interface tweaked, hopefully more usable.
Bug fix: Tabs work with WordPress 2.8-bleeding-edge.
Bug fix: Translations for German, French, and Spanish are all updated.
Bug fix: Paged archives, searches, and frontpage fixed. - 3.0.2 [11-26-2008]:
Bug fix: Default options are installed correctly now for most users.
Bug fix: Nowbcn_breadcrumb_trail::fill()is safe to call within the loop.
Bug fix: In WPMU options now are properly separate/independent for each blog.
Bug fix: WPMU settings page loads correctly after saving settings.
Bug fix: Blog_anchor setting not lost on non-static frontpage blogs.
Bug fix: Tabular add on no longer causes issues with WordPress 2.7.
New feature: Spanish and French localization files are now included thanks to Karin Sequen and Laurent Grabielle. - 3.0.1 [10-22-2008]:
Bug fix: UTF-8 characters in the administrative interface now save/display correctly.
Bug fix: Breadcrumb trails for attachments of pages no longer generate PHP errors.
Bug fix: Administrative interface tweaks for installing default options.
Bug fix: Changed handling of situation when Posts Page is not set and Front Page is set. - 3.0.0 [9-22-2008]:
New feature: Completely rewritten core and administrative interface.
New feature: WordPress sidebar widget built in.
New feature: Breadcrumb trail can output without links.
New feature: Customizable anchor templates, allows things such as rel=”nofollow”.
New feature: The home breadcrumb may now be excluded from the breadcrumb trail.
Bug fix: 404 page breadcrumbs show up in static frontpage situations where the posts page is a child of the home page.
Bug fix: Static frontpage situations involving the posts page being more than one level off of the home behave as expected.
Bug fix: Compatible with all polyglot like plugins.
Bug fix: Compatible with Viper007bond’s Breadcrumb Titles for Pages plugin (but 3.0.0 can replace it as well)
Bug fix: Author page support should be fixed on some setups where it did not work before.
To keep this page at a reasonable length, only the 3.x.x branch versions 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.

Great plugin. I installed it successfully. Anyway, how do I show a post in two categories ‘Blog’ and ‘Featured’ subcategory to ‘MISC’?
How can I achieve this:
WareZReview > Blog | MISC > Featured > RATE: GameLoo.info
Thanks in advance.
Gofree,
You can not and should not do it. Categories are hierarchical and your proposed method does not clearly display the category hierarchy leading up to the post (e.g. is featured a child category of Blog or MISC or both of them?). This is only going cause confusion among your users.
-John Havlik
‘Featured’ is a child of MISC, so it stands just after its parent – MISC > Featured.
WP allows us to create sub cat, so why not make one?
Gofree,
No, I was pointing out that from your example Featured looks to be a child category of Blog and MISC. Breadcrumb NavXT does support hierarchical categories (that’s what I’m using on this site), but it does not support outputting multiple member categories on each breadcrumb level (e.g. ‘WareZReview > MISC > Featured > RATE: GameLoo.info’ is valid ‘WareZReview > Blog > RATE: GameLoo.info’ is also valid, but ‘WareZReview > Blog | MISC > Featured > RATE: GameLoo.info’ is not valid).
-John Havlik
Hi,
Unable to activate the plugin. I get an error:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /home/content/html/wp-content/plugins/breadcrumb-navxt/breadcrumb_navxt_admin.php on line 45
Pl let me know how to fix it.
Babaji,
See the Breadcrumb NavXT FAQ.
-John Havlik
hmmm… I have php5 activated with my hosting company already. Is there another reason I might be getting this error
Paul,
If you had just switched to PHP5, it may take a while for the host to actually switch over to it (24 hours or so). What you should do is add
phpinfo();to your theme’s functions.php file, and see what version it says you are running.-John Havlik
Hi,
I have followed your instructions and placed the required code into my index.php file but I am yet to see the plugin on my website…
Not sure what am doing wrong..
Thanks
Lee,
Depending on your theme, index.php may not be loaded on every page (and thus the breadcrumb trail won’t show up everywhere). You also need to ensure that the plugin is activated. If the site was the one listed in your name, I’m not seeing any HTML suggesting that Breadcrumb NavXT is running or it’s calling code is there.
-John Havlik
Hi John..
Yes, the plugin is activated and is the one listed for my name…
I built the theme myself.. Would it be better if I put the code in my single.php file for my blog?
<h2 class="center">Not Found</h2><p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php get_search_form(); ?>
<?php endif; ?>
<div class="breadcrumb">
<?php
if(function_exists('bcn_display'))
{
bcn_display();
}
?>
</div>
</div>
<?php get_sidebar(); ?>
This is where I have put the code.. maybe a conflict or something ?
Thanks
Lee,
Ok I see it now, it’s at the bottom of the blog page, next to the next page link. It’s difficult to see due to styling (black text for part of it, a styling issue but I’m sure you can fix that easily).
Where do you want the breadcrumb to show up on your site (on what pages, and location on the pages)?
-John Havlik
I would like it on my blog most.. I think that will increase my SEO more
So I just change the CSS ?
Thanks John
Lee,
If you want it on every blog post along with the “main” blog page, you’ll need to place the code in your single.php and in your index.php.
-John Havlik
Hi,
Thank you for the plugin.
On the post page it’s not showing the ‘child’ categories, only the top category (then post title).
Can I do anything about this?
Thanks!
Hey,
I believe I am having this problem too. I can’t figure it out. Any ideas?
Thank you
Scott,
Do you have a link to an example page which exhibits this behavior? I’m not seeing the issue on the site you linked to in your name.
-John Havlik
Hi John,
Thanks so much for getting back to me.
The following link:
http://www.vibraphoneandmarimba.com/sheet-music/four-vivaldi-seasons-for-flute-and-vibraphone/
Should look like this in the bread crumbs:
Home > Sheet Music > Duos > Flute and Vibraphone > Four Vivaldi seasons for flute and vibraphone
But instead looks like this:
Home > Sheet Music > Duos > Four Vivaldi seasons for flute and vibraphone
Thanks!
Scott,
Is that post a member of the categories “Duos” and “Flute and Vibraphone”? If so, that is the problem. Breadcrumb NavXT will take the first category hierarchy it finds, this may not be the longest one. Thus, it look like it is cutoff, but in reality that’s the category hierarchy it is picking. Unless you have a compelling reason to have the post be an explicit member of every category in that hierarchy, I’d change it so it’s only a member of the deepest, most specific category. WordPress will still handle the archives correctly (it will still show up in the “Duos” category archive as long as “Flute and Vibraphone” is a child category of “Duos”).
-John Havlik
Brilliant!
Thank you!
Yes, for some reason I thought that when writing the post I was supposed to ‘check mark’ Parent – child – child. In reality I see now thanks to you I only need to check mark the last category to which it belongs.
Now I just have to worry if maybe my permalink structure is not optimal for wordpress!
Been reading this:
http://dougal.gunters.org/blog/2009/02/04/efficient-wordpress-permalinks
Thanks again John
Scott,
If you use a permalink structure like: “/archives/%category%/%postname%/” you won’t have the performance hit. Dougal’s post is a little outdated and in reality date based permalinks are not that good. They are terrible for usability and, ironically, SEO (From what I’ve seen, Google does not generate breadcrumbs for date based permalinks in their search results).
-John Havlik
Hi John,
I know this is off topic. But was wondering your opinion.
If I use:
/%category%/%postname%/
is it really a big deal for performance? (I may have eventually over 1000 posts put only a few pages)
And would the Super Cache plugin rectify this if it becomes a problem?
I’d like to avoid changing the permalink structure but don’t want to regret this later on.
Thanks!
Scott.
I installed this WP plugin on my website and then realized that the site did not have a deep enough menu navigation to warrant it so I disabled it and went to delete it. This error message came up:
Fatal error: Call to undefined method bcn_admin::uninstall() in /www/__________.com/wp-content/plugins/breadcrumb-navxt/breadcrumb_navxt_uninstaller.php on line 148
I am using WP 2.9.1 and want to know if there is a way to remove the plugin.
Shannon,
You’ll have to delete the breadcrumb_navxt_admin.php and “reinstall” the plugin. Then the delete from WordPress will work (we’ve been having issues with the uninstaller hooks not working in WordPress and I removed the uninstaller function from the admin class thinking that it was not needed in the new uninstaller).
-John Havlik
I deleted the file and tried to reinstall the plugin from within Wordpress and got this error:
Destination folder already exists. /www/_______.com/wp-content/plugins/breadcrumb-navxt/
Plugin Install Failed.
What should I do now?
Shannon,
Deleting the entire breadcrumb-navxt directory should avoid that error.
-John Havlik
That worked. Thanks
Thanks for a great plugin!!.
I have two questions I can’t seem to find answers on, both related to the breadcrum for the search.php template.
1. I’m trying to work it into a multilingual site using wpml plugin. Any way for me to change the language depending on the language?
2. Anyway to add a prefix link for the search breadcrumb so that it is :
home > tools > search > results for…
The plugin uses .mo or .po (I forget) files and this is what I use to call text:
Tried to add tags… I should no better
Here is what I use to call text:
_e(’search’, ‘wpml_theme’);
Thibaut,
1. I assume you are talking about things like prefixes, suffixes, etc. I’m not familliar with wpml, but I’d assume it provides something that would allow you to place in
[lang=en]Search[/lang][lang=es]Buscar[/lang]. To be honest, the only plugin that I’ve seen work is qTranslate.2. Searches will search both posts and pages, thus they are a direct decedent of the root page, and belong under home > results for. You could manually add in the extra breadcrumbs (use the available
bcn_breadcrumb_trail::add()function, note that you’ll have to use the “advanced usage” calling code for this to work).-John Havlik
Hey John,
I really like your plug in but I having trouble figuring out what I did to stop it from working correctly.
When I’m logged into Wordpress, the breadcrumb shows correctly (i.e. Navigation » Vaporizer Reviews > Vaporizer Reviews > Volcano Vaporizer). When I log out, I see: Navigation » Vaporizer Reviews > … I have a link to this example in my signature.
Any advice?
Thank you
Nik,
I’m not sure what’s going on there. The breadcrumb trail should not be affected by the current user’s state (logged in or not). Previously, you had said you were experiencing the same issues as Scott. Did you try the solution that worked for him? Is this a new problem that arose after fixing the previous issue?
-John Havlik
Hey,
Thanks for the quick response. I thought I had the same problem as Scott but I misunderstood his question/problem.
I am not sure when the problem started. I think it might have stopped working when I updated the plug-in. I am now thinking it could be related to the use of custom code when the website was developed. Is this possible? If so, I’ll try to get in contact with the coder of the website.
It really is strange that it works correctly when I’m logged into Wordpress and preview the page…
Also, does this look funny?
<!-- Breadcrumb NavXT 3.4.1 -->Navigation » <a title="Go to Vaporizer Reviews." href="http://www.vaporizerforums.com/vaporizer-reviews" rel="nofollow">Vaporizer Reviews</a> >
Thanks again
Darn, that was supposed to show a small bit of code that I was looking at while viewing the source… it was not supposed to be a link.
Vaporizer Reviews >
Nik,
If you didn’t try to remove the current item form the breadcrumb trail, then, yes, that is odd, it looks like it exited early for some reason. Could you enable the WordPress debug messages to see if any errors/warnings appear? To do this make sure
define('WP_DEBUG', true);is uncommented and placed beforerequire_once(ABSPATH.'wp-settings.php');in your wp-config.php file.-John Havlik
John,
I enabled the debug mode. It shows these messages immediately above the breadcrumb trail when I am logged out:
Notice: Trying to get property of non-object in …/wp-includes/post-template.php on line 109
Notice: Trying to get property of non-object in …/wp-includes/post-template.php on line 120
Notice: Trying to get property of non-object in …/wp-content/plugins/breadcrumb-navxt/breadcrumb_navxt_class.php on line 625
Notice: Trying to get property of non-object in …/wp-includes/category-template.php on line 871
There were other error messages too but I am not sure if you wanted me to post them all. Most of them were related to the All in one SEO plug in.
Thanks again
Nik,
Ok it looks like the
$postvariable is getting trashed (unset or otherwise modified inappropriately). I’m not sure why it is happening but that’s the problem (something with the theme, or another plugin).-John Havlik
Hi,
I had the same experience.
Nik, do you use the “Ajax Edit Comments”-Plugin?
I disabled it on my blog, and the NavXT-Plugin works again as usual.
Greetings, Michael
Hey,
“WP Ajax Edit Comments” was causing the problem.
Thank you John and Michael for helping me with this issue. I really appreciate it.
Nik
Michael,
Thanks for letting me know that. I’m going to look into the compatibility issues and notify the author of any corrections needed to resolve the issue.
-John Havlik
Hi John,
Love your Breadcrumb plugin. So easy to setup and use especially since I know nothing of code etc. Question though. One one of my pages (if you would look here to get an idea of what I’m talking about http://www.experienceserenity.com/serenity-personal-growth), the breadcrumb is taking the entire Title of the page and inserting it into the breadcrumb. This makes the breadcrumb realllllllllly looooong.
How can I make the breadcrumb take maybe only the URL title (“serenity personal growth”) or something else which is shorter?
Thanks again for the plugin and your advice in advance.
Peace
Mahindra,
Sorry for the delayed reply, somehow your comment fell through the cracks. Anyways, there is the Breadcrumb Max Title Length setting that you can use to limit the title character length of each breadcrumb in the trail (it safely splits at a word, if possible).
-John Havlik
Hi,
The author of WP Ajax Edit Comments uploaded a fixed Version on the Wordpress Plugin Page. Now both plugins work together on my installation
Greetings,
Michael
I followed the instructions for basic installation but it doesnt seem to display the breadcrumb – upon searching the plugin – bcn_display() doesnt seem to be function. Is there something I am doing wrong?
Well, if you used the code, verbatim from the code listing, including the
divtags then you should be able to see the<div class="breadcrumb">where Breadcrumb NavXT should be running.If you don’t see
<div class="breadcrumb">then you need to look at where you placed the calling code in your theme files (I don’t know how your theme is setup, and frankly don’t want to know for my own sanity).If you do see
<div class="breadcrumb">then, you should enable the WordPress debug mode by making sure define(‘WP_DEBUG’, true); is uncommented and placed before require_once(ABSPATH.’wp-settings.php’); in your wp-config.php file. See what error messages you get, they may point to the problem.Also, as observed by two users, there is a version of Ajax Edit Comments that behaves incorrectly, and in the process causes Breadcrumb NavXT to not behave as expected. The author of that plugin has released newer versions, however, they are no longer free (or open source IIRC).
Finally, you may notice that I changed your name in the comment. I don’t run a SEO baiting service here and if I see anyone trying to do SEO bait I will modify or delete their comment at my discretion.
-John Havlik
Hello,
Love it! But I miss one feature – integration with Nextgen gallery. When we set up some galleries within albums there is something like this on the very end:
http://xxx/?page_id=8&album=3
Breadcrumb only shows something like this:
home>>http://xxx/?page_id=8&album=3
Would be nice if could show whole path:
home>>http://xxx/?page_id=8>>http://xxx/?page_id=8&album=3
or at least recognize current item to reload as:
home>>http://xxx/?page_id=8
I guess a lot peoples would find it very useful.
Thank you in advance for support.
Hello, i have installed your plug-in, it works great as long as i’m authenticated as admin. As soon as log-out / end the admin session, the breadcrumb shows only the home link. Any idea why is doing that ?
Thanks.
Ok, i found the cause: WP Ajax Edit Comments (i
amwas using the 3.02 version, the free one)Liviu,
The 3.1.0 version looks like it may have been fixed for this bug. Though, the plugin author is no longer supporting the version on WordPress.org.
-John Havlik
Yes, so it seems
Thank you for your time. You are doing a great job
hey – we want to include Home in our breadcrumb, but we don’t want it to show up on the homepage itself. Any ideas on this? Thx, Joe
Joe,
Try using something like this for calling your breadcrumb trail:
wrap the call with something like:
<div class="breadcrumb"><?php
if(!is_front_page() && function_exists('bcn_display'))
{
bcn_display();
}
?>
</div>
-John Havlik
Hi! The blog on my site is set as my main page. However, I was wondering where I could change it so that the blog page’s actual name is shown in the breadcrumbs rather than just “Blog”. Thanks!
Brittany,
Did you look at the settings page for Breadcrumb NavXT in your administration panel? The option “Home Breadcrumb” is the one you’ll want to change.
-John Havlik
Oh! Okay! Thank You!