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. This plugin generates locational breadcrumb trails for your WordPress powered blog or website. These breadcrumb trails are highly customizable to suit the needs of just about any website running WordPress. The Administrative interface makes setting options easy, while a direct class access is available for theme developers and more adventurous users.

PHP Requirements

Breadcrumb NavXT 7.0 and newer require PHP7.0
Breadcrumb NavXT 5.2 and newer require PHP5.3
Breadcrumb NavXT 5.1.1 and older require PHP5.2

Features (non-exhaustive)

  • RDFa format 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 extensions plugin).
  • BuddyPress compatible (enhanced compatibility with BuddyPress extensions plugin).


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


  • This screenshot shows 5 different examples of breadcrumbs generated by Breadcrumb NavXT
  • A screenshot of the General tab of the settings page
  • A screenshot of the Post Types tab of the settings page
  • A screenshot of the Taxonomies tab of the settings page
  • A screenshot of the Miscellaneous tab of the settings page
  • A screenshot of the Settings Import/Export/Reset form under the Help menu


This plugin provides 1 block.

  • Breadcrumb Trail Displays a breadcrumb trail


Breadcrumb NavXT can be installed from within WordPress’ administration panel. After installing and activating the plugin, to get breadcrumb trails to display either use the included widget, or call the breadcrumb trail in your theme (or child theme). See the Calling the Breadcrumb Trail article for more information on calling the breadcrumb trail.

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.

Please visit Breadcrumb NavXT’s Documentation page for more information.


17 кастрычніка, 2023
This plugin is a perfect solution and works so well! Please keep it up!!
5 красавіка, 2023
breadcrumb navxt polylang does not work for Homepage, this is a big problem, where, for example, it was solved in other plugins, I found this one! But I want to evaluate rationally if a site in one language plugin is an excellent solution. In any case, thanks!
12 лістапада, 2022
This is a great plugin. Has to be the absolute best for Breadcrumbs in your blog. @mtekk is helping me with my issue with Categories displaying as Tags. I was pretty nervous about bringing a website that was offline since 2016 back online and he handled me with professionalism that I guess I wasn’t expecting. I’m slowly trying to catch up with all the changes to Wordpress and having Him handle things like this makes it a lot easier.
Read all 129 reviews

Contributors & Developers

“Breadcrumb NavXT” is open source software. The following people have contributed to this plugin.


“Breadcrumb NavXT” has been translated into 30 locales. Thank you to the translators for their contributions.

Translate “Breadcrumb NavXT” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



Release date: June, 27th 2024

  • Bug fix: Fixed issue where $force parameter wasn’t passed into bcn_breadcrumb_trail::fill() within bcn_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.


Release date: February, 9th 2024

  • Behavior change: bcn_display_json_ld() now returns unescaped Unicode characters.
  • Behavior change: $force parameter in bcn_display*() functions is now passed to bcn_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 within breadcrumb_navxt::display().
  • Bug fix: Fixed issue where boolean settings were not exported/imported properly.
  • Bug fix: Fixed cause of PHP error in bcn_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.


Release date: February, 9th 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: Added bcn_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.


Release date: July, 17th 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: Added bcn_before_loop filter which runs at the top of bcn_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.


Release date: January, 4th 2022

  • Behavior change: Allow value of Hhome_template, Hhome_template_unlinked, hseparator, and hseparator_higher_dim to be overridden via bcn_settings_init.
  • Bug fix: Fixed cause of “Sorry, you are not allowed to access this page.” message when attempting to visit the settings page.


Release date: December, 27th 2021

  • Behavior change: Moved bcn_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 into adminKit::settings_to_opts.
  • Bug fix: Fixed issue with bcn_allowed_html not covering admin interface elements (mapped bcn_allowed_html to mtekk_adminkit_allowed_html).


Release date: December, 17th 2021

  • Behavior change: Within the bcn_breadcrumb_trail object instead of passing term id and taxonomy, a WP_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: Core bcn_breadcrumb_trail object now supports multi dimensional trails.
  • New feature: Added bcn_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 within bcn_display when outputting a trail in reverse order.


Release date: October, 31st 2020

  • Behavior change: Moved to using the post type of the parent post for the type archive rather than that of the current item.
  • Bug fix: Fixed error thrown when a site does not have an administrator role.


Release date: June, 12th 2020

  • Behavior change: Moved to using the taxonomy of the term rather than passed in taxonomy in various functions. As a consequence, this allows bcn_pick_post_term to override the taxonomy selection.
  • Behavior change: Default template for unlinked breadcrumbs now includes breadcrumbList markup.
  • New feature: Added new filter bcn_breadcrumb_linked.
  • New feature: Introduced new WordPress capability: bnc_manage_options.
  • Bug fix: Fixed XML settings exporter so that it no longer creates malformed files that cannot be imported when settings contain special HTML entities.


Release date: December, 31st 2019

  • Behavior change: Attachment post type settings moved to Media, additional post type options made available.
  • Behavior change: Privately published parent posts are now, by default, skipped over in breadcrumb trails.
  • Behavior change: On single post breadcrumb trails, the hierarchical term code path is now used in cases where only a single term from a non-hierarchical taxonomy is present for the current post.
  • New feature: Allow %link% tag in unlinked breadcrumb templates.
  • New feature: Added bcn_show_post_private filter.
  • New feature: Added bcn_show_type_term_archive filter.


Release date: May, 3rd 2019

  • New feature: Added Gutenberg block for displaying breadcrumb trails.
  • New feature: Added bcn_display_attribute_array filter.
  • New feature: Added bcn-aria-current template tag to facilitate WAI-ARIA Breadcrumb support.
  • Bug Fix: Updated settings page to follow WP core standards for header structure.
  • Bug Fix: Updated checkbox in adminKit to eliminate multiple labels to follow WCAG 2.0.
  • Bug Fix: Fixed PHP error in circumstances of bcn_breadcrumb_trail::fill() falling back on treating an unknown item as a taxonomy.


Release date: October, 26th 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.


Release date: September, 24th 2018

  • Behavior change: Cleaned up translations for default templates, simplifying and clarifying the translatable content.
  • Behavior change: Default unlinked breadcrumb templates no longer contain 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_assembled_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.


Release date: June, 1st 2018

  • Behavior change: Links to generate support requests migrated to the forums.
  • New feature: Added support for 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 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.


Release date: January, 26th 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.


Release date: January, 1st 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.


Release date: December, 30th 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.


Release date: December, 28th 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.


Release date: December, 26th 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(), and/orbcn_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 PHP 7.2.