Showing Private Posts in the Breadcrumb Trail

In Breadcrumb NavXT 6.4.0 the default behavior of Breadcrumb NavXT was changed to automatically exclude private posts from the breadcrumb trail. As part of this change, a new filter bcn_show_post_private was introduced to allow control over what private posts are included in the breadcrumb trail.

Basic Usage – Including All Private Posts

The following code, when placed in a site specific plugin, will enable display of all private posts in the breadcrumb trail.

add_filter('bcn_show_post_private', 'my_bcn_show_post_private', 10, 2);
function my_bcn_show_post_private($show, $ID)
{
	return true;
}

Something More Advanced

Rather than display all private posts in the breadcrumb trail, prehaps it is appropriate to show private posts of a specific post type. For example, the below will include private posts of the type forum (e.g. from bbPress) in the breadcrumb trail, while private posts from other post types will remain excluded.

add_filter('bcn_show_post_private', 'my_bcn_show_post_private', 10, 2);
function my_bcn_show_post_private($show, $ID)
{
	$post = get_post($ID);
	if($post instanceof WP_Post and $post->post_type === 'forum')
	{
		$show = true;
	}
	return $show;
}

This is not the only way private posts can be selectively included. Some other possibilities include checking if the user is logged in, checking if the user has specific permissions, or specifically include posts based on the post ID.

-John Havlik

Non-Hierarchical Taxonomies and JSON-LD Compatibility

While Breadcrumb NavXT for some time has provided methods for generating JSON-LD formatted BreadcrumbLists, the use of non-hierarchical taxonomies within a breadcrumb trail may result in non-compliant breadcrumb trails. For the case of a post only being a member of a single term within a non-hierarchical taxonomy, since Breadcrumb NavXT 6.4, compliant JSON-LD is generated. However, when a post is a member of multiple non-hierarchical terms within the same taxonomy, we run into problems.

When using the normal display functions, all of the terms in the non-hierarchical taxonomy that the post is a member of will be displayed, separated by commas. This behavior has been more-or-less the same since support for tags was added in 2.1.0. In essence, when there are multiple terms, there is a second dimension to the breadcrumb trail for that specific breadcrumb.

Unfortunately, it does not appear that Schema.org BreadcrumbList has the facility to support multi-dimensional breadcrumbs. Hence, a single term needs to be selected when there are multiple for a post. Luckily, the bcn_post_terms filter can be used to do this.

The Code

Introduced in Breadcrumb NavXT 5.4, bcn_post_terms allows us to filter out all of the terms returned by post_terms(). In this case, only the first term is wanted.

add_filter('bcn_post_terms','my_bcn_post_term_selector', 10, 3);
function my_bcn_post_term_selector($terms, $taxonomy, $id)
{
	//Check to ensure the terms list is an array and there is more than one item in it
	if(is_array($terms) and count($terms) > 1)
	{
		//Return the fist item in a new array
		return array(0 => reset($terms));
	}
	return $terms;
}

To get started quickly, just copy and paste the above code into a site specific plugin and start playing.

Note: This code relies on behavior introduced in Breadcrumb NavXT 6.4 and will not work in prior versions.

-John Havlik

Breadcrumb NavXT Attributes 1.0.4

Announcing the immediate availability of Breadcrumb NavXT Attributes 1.0.4. This version features two bug fixes. The remove current item functionality within the shortcode works again in modern versions of Breadcrumb NavXT. Additionally, the post type root page is no longer erroneously included in the first breadcrumb trail generated by Breadcrumb NavXT Attributes.

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 Menu Magic 2.1.0

Announcing the immediate availability of Breadcrumb NavXT Menu Magic 2.1.0. New in this version is %DynamicTerm% menu item functionality. Additionally, improvements in Breadcrumb NavXT 6.4 support were made in this version.

The %DynamicTerm% Custom Menu Item

This new feature allows Breadcrumb NavXT Menu Magic to include the breadcrumbs for the term hiearchy normally associated with a post within the breadcrumb trail. Using this functionality requires adding a custom menu item to your menu. This menu item needs to have the Navigation Label set to %DynamicTerm%, and the URL should be set to #. Any posts (of any post type except the built-in page post type) placed under this custom menu item will now have the term hierarchy replace the custom menu item in their breadcrumb trails. Note that if the hierarchy for the post type in question is not a taxonomy (e.g. post parent, or date), the %DynamicTerm% menu item will be ignored.

Old Version Availability

Starting today, only the current release (e.g. 2.1.0) and the latest bug-fix of the prior release (2.0.1) will be available on the download list. All other releases are available upon request via opening a support ticket.

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 Polylang Extensions 1.5.4

Announcing the immediate availability of Breadcrumb NavXT Polylang Extensions 1.5.4. This version fixes an issue where the breadcrumb title for Custom Post Type archives would not accept a translation. Note, that this requires the Custom Post Type is registered properly so that Polylang finds its labels and makes them available for translation.

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