Breadcrumb NavXT 7.0.0

Holy under-the-hood improvements Batman! This release feature a heavy reworking of the code that powers the administrative interface. While there isn’t much to show for it right now, the ground work has been laid to revamp how the settings importing/exporting works. Additionally, the core breadcrumb trail class now supports multidimensional breadcrumb trails. Note that this doesn’t mean it generates them, internally, it allows non-hierarchical terms to be handled more gracefully. On top of the under-the-hood changes, several bugs were fixed in this release.

PHP8 compatibility has been improved (the REST controller no longer throws an error). Widget settings not saving/taking effect in WordPress 5.8+ has been fixed as well. Lastly, an error in how the position count worked was fixed for when the output order of the trail is set to reverse.

Internally, the way settings work has changed significantly. Rather than saving the entire set of setting values to the database, only non-default values are now saved. As part of this, a new filter, the bcn_opts_update_to_save filter was added to allow control of the non-default values before saving. The change in what is saved to the database helps with future updates, allowing sites that use the default value for a setting to keep up with the latest settings changes without having to manually make changes.

Lastly, a few notes on potential messages and behaviors that may be seen. Immediately after migrating settings on the Breadcrumb NavXT settings page, you may see a notice about unknown settings. Under normal circumstances, this will disappear after re-loading the page. It is a result of the settings updater removing old settings from the database (since only non-default values are now saved). Additionally, if the labels for the settings tabs are missing, it is likely that you are also running WP Lynx, or some other plugin that uses an old version of adminKit. At this point of time, you’ll have to either update those plugins, or deactivate them. Finally, if you use any of the Breadcrumb NavXT extension plugins, you should update these plugins prior to updating to Breadcrumb NavXT 7.0.

-John Havlik

Breadcrumb NavXT and bbPress Compatibility Revisited

Since the last time the topic of Breadcrumb NavXT and bbPress Compatibility was investigated, almost 6 years ago, a little has changed in how both plugins operate. In fact, due to a change in how bbPress operates internally, Breadcrumb NavXT now supports post type jumping.

What Works

Out-of-the-box, forums and topics should work well. However, the settings recommendations have changed since the last visit of this topic. The current settings recommendations are:

  • Forum Root Page and Topic Root Page – Set these to be equal and to whatever page you have set as ‘Forum Root’ under Settings > Forums.
  • Forum Archive Display – Unchecked
  • Forum Hierarchy Display – Checked
  • Forum Hierarchy – Post Parent
  • Topic Archive Display – Checked
  • Topic Hierarchy Display – Checked
  • Topic Hierarchy – Post Parent

What Doesn’t Work

Out-of-the-box, topic tag archives still won’t work as expected. Additionally, the search page, search results page, and user pages do not work. These all require custom, bbPress specific code.

The Solution

Recently, Breadcrumb NavXT bbPress Extensions was updated to include support for the search page, search results pages, and user pages (at least the landing page for user pages, the various sub-pages are not supported yet). This is in addition to fixing the how topic tag archives show up in the breadcrumb trail.

-John Havlik

Breadcrumb NavXT 6.6.0

Holy post type jumping Batman! This second feature release of 2020 changes how post type archives are handled when following a post parent hierarchy. Additionally, a bug introduced in 6.5.0 was fixed where an error that would be thrown in the WordPress dashboard if the administrator role does not exist.

Previously, if the post type changed while following the post parent hierarchy, the post type of the current item was used for the post type archive. In 6.6.0, this behavior changed to use the post type of the highest level post in the post parent hierarchy. The old behavior just didn’t make sense and causes problems with plugins that use multiple custom post types in the same hierarchy. A side benefit of the change is improved bbPress and BuddyPress support.

-John Havlik

Breadcrumb NavXT 6.5.0

Holy taxonomy jumping Batman! This first feature release of 2020 changes the way taxonomies are handled when passing from function to function. Now, it is possible to change the taxonomy, in addition to the term, used for a post’s hierarchy using the bcn_pick_post_term filter. Additionally, the bcn_breadcrumb_linked filter was added to allow manipulation of the breadcrumb’s linked state. On the administration interface front, a new capability was introduced, bcn_manage_options. Lastly, a bug was fixed in the settings exporter that caused it to generate non-importable settings files when certain HTML entities were present in a setting.

bcn_breadcrumb_linked Filter

In Breadcrumb NavXT 6.4.0, the way URLs and the linked state for individual breadcrumbs changed. This was to facilitate the ability to place the %link% tag in unlinked breadcrumb templates. As part of this bcn_breadcrumb::set_linked() was introduced. To allow users to control the behavior of this function, the bcn_breadcrumb_linked filter was added in 6.5.0.

bcn_manage_options Capability

Up until Breadcrumb NavXT 6.5.0, the manage_options capability was used to gate access to the Breadcrumb NavXT settings page. While this did insure the proper level of authority for modifying settings, it did not allow flexibility to add the ability to mange just the Breadcrumb NavXT settings to a role. Thus, in 6.5.0, the bcn_manage_options capability was added. By default this capability is added to the administrator role.

-John Havlik

Breadcrumb NavXT 6.4.0

Holy incremental improvements Batman! This second feature release of 2019 changes the way private posts and non-hierarchical taxonomies are handled. As part of these changes, a new filter was added bcn_show_post_private. Additionally, the %link% template tag is now allowed in the “unlinked” breadcrumb templates. Lastly, how the Media post type settings are handles changed. Previously, it was referred to as “Attachments” within the Breadcrumb NavXT settings page. Now, this post type is referred to by its actual name (Media) and additional settings are available for it in the settings page.

bcn_show_post_private Filter

Beginning in 6.4.0, the default behavior for private posts has changed. If a parent of a post has the published status of private, it no longer will be included in the breadcrumb trail (Breadcrumb NavXT will skip over it). While this was deemed the most appropriate behavior, some users may want the old behavior. To facilitate that, the bcn_show_post_private filter was added in 6.4.0.

bcn_show_type_term_archive Filter

Since 3.9.0, Breadcrumb NavXT has attempted to associate a taxonomy with a post type to include the type archive in the breadcrumb trail. This was not controllable (if the post type had an archive and it was enabled in the settings for that post type, it would show up in the breadcrumb trails for associated taxonomy terms). To allow users to control this behavior, the bcn_show_type_term_archive filter was added in 6.4.0.

Non-Hierarchical Taxonomies

Previously, the use of non-hierarchical taxonomies as the parent for posts was handled in a very different manner than hierarchical taxonomies. This is quite hacky, and incompatible with the newer bcn_display_json_ld() function. To resolve some of these incompatibilities, when a post has onl only a single non-hierarchical term, the hierarchical term codepath will be used. This will result in the same breadcrumb trial being produced, however, it will no longer cause issues with bcn_display_json_ld.

-John Havlik