=== Breadcrumb NavXT ===
Contributors: mtekk, hakre
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=FD5XEU783BR8U&lc=US&item_name=Breadcrumb%20NavXT%20Donation&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
Tags: breadcrumb, breadcrumbs, trail, navigation, menu, widget
Requires at least: 5.8
Tested up to: 6.4
Stable tag: 7.3.0
Requires PHP: 7.0
License: GPLv2 or later
Adds breadcrumb navigation showing the visitor's path to their current location.

== Description ==

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 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](http://mtekk.us/archives/guides/controlling-breadcrumb-navxt-settings-from-the-network-settings-page/ "Go to the article on configuring the network settings priority.").
* Built in WordPress Widget.
* Extensible via OOP and provided [actions](http://mtekk.us/code/breadcrumb-navxt/breadcrumb-navxt-doc/2/#action_reference "Go to the Breadcrumb NavXT Documentation's action reference.") and [filters](http://mtekk.us/code/breadcrumb-navxt/breadcrumb-navxt-doc/2/#filter_reference "Go to the Breadcrumb NavXT Documentation's filter reference.").
* 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).

= Translations =

Breadcrumb NavXT now supports WordPress.org language packs. Want to translate Breadcrumb NavXT? Visit [Breadcrumb NavXT's WordPress.org translation project](https://translate.wordpress.org/projects/wp-plugins/breadcrumb-navxt/).

== Installation ==
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](http://mtekk.us/archives/guides/calling-the-breadcrumb-trail "Read more on 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](http://mtekk.us/code/breadcrumb-navxt/breadcrumb-navxt-doc/ "Go to Breadcrumb NavXT's Documentation.") page for more information.

== Screenshots ==
1. This screenshot shows 5 different examples of breadcrumbs generated by Breadcrumb NavXT
2. A screenshot of the General tab of the settings page
3. A screenshot of the Post Types tab of the settings page
4. A screenshot of the Taxonomies tab of the settings page
5. A screenshot of the Miscellaneous tab of the settings page
6. A screenshot of the Settings Import/Export/Reset form under the Help menu

== Changelog ==
= 7.3.0 =
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.

= 7.2.0 =
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.

= 7.1.0 =
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.

= 7.0.2 =
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.

= 7.0.1 =
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`).

= 7.0.0 =
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.

= 6.6.0 =
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.

= 6.5.0 =
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.

= 6.4.0 =
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.


= 6.3.0 =
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.

= 6.2.1 =
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.

= 6.2.0 =
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 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_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.

= 6.1.0 =
Release date: June, 1st 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 =
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.

= 6.0.3 =
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.

= 6.0.2 =
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.

= 6.0.1 =
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.

= 6.0.0 =
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/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 PHP 7.2.

== Upgrade Notice ==
= 7.1.0 =
This version requires PHP7.0 or newer. This version introduces a new JSON settings import/export feature.