Breadcrumb NavXT 6.0.0

Holy refactored bcn_breadcrumb_trail class Batman! For the first major release in four years, the focus was on improving Breadcrumb NavXT’s internal components. On the new features front, two new filters were added. Additionally, HTML tags are now available for the included widget’s pretext field. On the bug fix front, two UI/UX bugs involving settings groups were fixed in the settings page. Finally, code containing calls to functions deprecated in PHP 7.2 was reworked to remove the deprecated function calls.

One of the largest changes in this version was the way the bcn_breadcrumb_trail class works internally. For end users, the functionality should be the same. However, for developers digging into the inner workings of the plugin, things have changed. Previously, the do_* functions occasionally contained calls to functions that depended on the state of the global $wpdb variable. Much of the effort put into 6.0.0 was to change this. Now fill() handles all state determination. This is advantageous for cases that require passing in the state to the appropriate do_* function.

Hook Changes

Ignoring deprecations (more on those below), there are four filter changes in Breadcrumb NavXT 6.0. One filter gained an additional parameter, and three new filters were added. A third parameter containing the name of the post type (when applicable) was added to bcn_show_tax_private. bcn_default_hierarchy_display and bcn_default_hierarchy_type were added to facilitate overriding the default choices Breadcrumb NavXT makes for CPTs before the user has save settings. Lastly, bcn_display_attributes was added to replace bcn_li_attributes.

Deprecations

As part of a major refactoring of the bcn_breadcrumb_trail class, several functions were deprecated, and a couple were removed. Below is a summary of the changes.

Deprecated Functions:

  • bcn_breadcrumb_trail::display_list()
  • bcn_breadcrumb_trail::do_attachment()
  • bcn_breadcrumb_trail::do_archive_by_date()

Deprecated and Removed Functions:

  • bcn_breadcrumb_trail::do_front_page()
  • bcn_breadcrumb_trail::find_type()

Deprecated Filters:

  • bcn_li_attributes

For more information on these deprecations, see the Changes to Note Before Upgrading to Breadcrumb NavXT 6.0 article. This article covers these changes in greater detail.

Translations

As explained in the Breadcrumb NavXT Translations Moving to Language Packs article, Breadcrumb NavXT has moved away from shipping translations with the plugin. This is the first release to ship without any included translations, all translations are available via language packs, or from the Breadcrumb NavXT Translation Project.

If you would like to contribute to translating Breadcrumb NavXT, please visit the Breadcrumb NavXT Translation Project. A big thanks to all of the translators that have contributed to the translations in the past and continue to contribute.

As always, you can grab the latest version of Breadcrumb NavXT from the Breadcrumb NavXT page. If you experience any issues with this version of Breadcrumb NavXT, please leave a comment on this post detailing the issue.

-John Havlik

[end of transmission, stay tuned]

Breadcrumb NavXT Menu Magic 1.5.0

Announcing the immediate availability of Breadcrumb NavXT Menu Magic 1.5.0. This version adds support for Breadcrumb NavXT 6.0. Additional changes were made to the administrative interface to more clearly indicate license status.

As noted in Changes to Note Before Upgrading to Breadcrumb NavXT 6.0, the changes made in Breadcrumb NavXT 6.0 will result will result in PHP errors being thrown in previous versions of Breadcrumb NavXT Menu Magic. This version supports both Breadcrumb NavXT 5.x and 6.x branches. Hence, it is highly recommended that this extension is updated before updating Breadcrumb NavXT to 6.0.

Users with valid and activated license keys should receive an update notification within the WordPress dashboard and be able to use the update mechanism to update (just like with any plugin in the WordPress.org repository).

-John Havlik

Breadcrumb NavXT Multidimension Extensions 2.5.0

Announcing the immediate availability of Breadcrumb NavXT Multidimension Extensions 2.5.0. The single new feature in this version is support for Breadcrumb NavXT 6.0. As there are breaking changes in Breadcrumb NavXT 6.0, this version supports both Breadcrumb NavXT 5.x and 6.x branches. Please update this extension before updating Breadcrumb NavXT to 6.0.

You can grab Breadcrumb NavXT Multidimension Extensions from the WordPress.org plugin repository.

-John Havlik

[end of transmission, stay tuned]

Changes to Note Before Upgrading to Breadcrumb NavXT 6.0

Breadcrumb NavXT 6.0 is now in the feature freeze phase of development. At this point, it is necessary to disclose the changes in Breadcrumb NavXT 6.0 that will require the attention of users and developers.

Unlike a typical release, quite a bit has changed under the hood in this release, hence the bump up from 5.7 to 6.0. Development for 6.0 focused heavily on reworking the bcn_breadcrumb_trail class. This rework impacts some extension plugins to Breadcrumb NavXT. If you have written custom code extending Breadcrumb NavXT, please see the deprecations section for functions and filters that have been deprecated in Breadcrumb NavXT 6.0.0.

Impacted Extensions

Over the next several weeks, leading up to the Breadcrumb NavXT 6.0 release, the following plugins will receive updates to support Breadcrumb NavXT 6.0. If a plugin listed below is in use on your site, please update to the version listed below before updating to Breadcrumb NavT 6.0.

Breadcrumb NavXT Menu Magic

Before upgrading the Breadcrumb NavXT 6.0.0, please upgrade Breadcrumb NavXT Menu Magic to 1.5 or newer. Failing to do so will result in PHP errors being thrown.

Breadcrumb NavXT Multidimension Extensions

Before upgrading the Breadcrumb NavXT 6.0.0, please upgrade Breadcrumb NavXT Multidimension Extensions to 2.5 or newer. Failing to do so will result in PHP errors being thrown.

Requires PHP5.4 and WordPress 4.6

Breadcrumb NavXT 6.0.0 officially bumps the required PHP version to PHP5.4 or newer. It is nearly impossible to test on PHP5.4 now, so support has to be dropped. Likewise, WordPress 4.6 or newer is now required for Breadcrumb NavXT 6.0.0.

Deprecations

As part of a major refactoring of the bcn_breadcrumb_trail class, several functions were deprecated, and a couple were removed. Additionally, one filter was deprecated as part of this refactoring effort.

bcn_breadcrumb_trail::display_list()

The display() function within bcn_breadcrumb_trail was refactored to be more generic, including a new $template parameter, as a result display_list() has been deprecated. This function was deprecated in Breadcrumb NavXT 6.0.0, however it still exists as a wrapper to the proper call to display() including the requisite template.

bcn_breadcrumb_trail::do_front_page()

There was substantial overlap in functionality between do_front_page() and do_home(). As a result, do_home() was made more generic and do_front_page() was removed from Breadcrumb NavXT 6.0.0.

bcn_breadcrumb_trail::find_type()

This was an auxiliary function to do_root() that determined the post type to use for the root. Since do_root() was refactored such that it no longer determines state, this function was removed in Breadcrumb NavXT 6.0.0.

bcn_breadcrumb_trail::do_attachment()

In refactoring do_post(), the functionality that was special to do_attachment() was absorbed into do_post(). These two functions were very similar in previous releases and it was a natural target for refactoring. This function was deprecated in Breadcrumb NavXT 6.0.0, however it still exists as a wrapper to the proper call to do_post().

bcn_breadcrumb_trail::do_archive_by_date()

In the refactoring effort to remove state determination logic from the lower level functions, this function’s behavior was split out into three functions: do_day(), do_month(), and do_year(). Internally, Breadcrumb NavXT now calls a combination of these three functions as needed. This function was deprecated in Breadcrumb NavXT 6.0.0, however it still exists as a wrapper to the proper call to do_day(), do_month(), and do_year().

bcn_li_attributes

As part of deprecating bcn_breadcrumb_trail::display_list(), the bcn_li_attributes filter has been deprecated in Breadcrumb NavXT 6.0.0. Replacing it is the new bcn_display_attributes filter.

-John Havlik

[end of transmission, stay tuned]