Breadcrumb NavXT and BuddyPress Compatibility

While developing Breadcrumb NavXT 5.4, I spent some time investigating the compatibility issues between Breadcrumb NavXT and BuddyPress. Within Breadcrumb NavXT, every attempt is made to use the WordPress API, when possible, to maximize the compatibility with other plugins such as BuddyPress. However, this is not always enough, and the findings of this investigation are presented in this article.

What You Need

These are the plugins and versions used when performing the testing reported on within this article:

  • BuddyPress – At the time this article was written, 2.5.0 was the latest available version and was the version tested against.
  • Breadcrumb NavXT – Tested against a development release of 5.4.0.

What Works

Out of the box, group and user/member archives work in Breadcrumb NavXT 5.4.0.Unfortunately, the design of BuddyPress does not incorporate much of the standard WordPress content organization facilities. Hence, out of the box support for BuddyPress in Breadcrumb NavXT leaves much to be desired.

What Doesn’t Work

While user/member and group pages are detected correctly, the breadcrumb for the user and group archives/directory is missing. Additionally, none of the sub-components of the user/member and group pages are represented in the breadcrumb trail.

The Solution

Breadcrumb NavXT BuddyPress Extensions is a free, add on plugin for Breadcrumb NavXT that fixes many of the shortfalls in BuddyPress support. It will fill in the missing breadcrumb to the group and user/member archives/directories when on a group or user/member page. Additionally, it will fill in the correct breadcrumb trail when in a sub-component of a user/member or group page. It is a simple activate and you’re good to go plugin—no configuration required. For non-English language sites, note that you will need to use the included .POT file in the languages directory to create your own translation set to get ‘Members’ and ‘Groups’ to translate to your language.

-John Havlik

[end of transmission, stay tuned]

Add a Static Breadcrumb to the Breadcrumb Trail

In some cases WordPress may be not be running your entire site. In these instances, there may be a root above what WordPress knows about. To add a breadcrumb to represent this, you have two options.

  1. Breadcrumb NavXT Menu Magic can be used. You will need to have a ‘custom item’ menu entry that represents this off WordPress resource and is the root to all of the other menu entries.
  2. Write a little code in a site specific plugin.

The Code

The Menu Magic method is neat and does not require any code writing. However, that’s not what this article is really about. Besides, the required code is quite simple. The following code just needs to be placed in a site specific plugin (or your theme’s functions.php if that floats your boat):

add_action('bcn_after_fill', 'my_static_breadcrumb_adder');
function my_static_breadcrumb_adder($breadcrumb_trail)
{
    $breadcrumb_trail->add(new bcn_breadcrumb('STATIC_TITLE', NULL, array('home'), 'STATIC_URL', NULL, true));
}

After placing this code into your site specific plugin, you will need to update two portions of it. Replace STATIC_TITLE with the title of the resource this breadcrumb represents, and replace STATIC_URL with the URL to the resource represented by this breadcrumb. That’s it. Simple, right?

-John Havlik

[end of transmission, stay tuned]

Breadcrumb NavXT Polylang Extensions 1.0.0

Introducing Breadcrumb NavXT Polylang Extensions. This plugin improves Breadcrumb NavXT’s support for Polylang, at plugin that facilities multi-lingual content on WordPress based sites.

While Breadcrumb NavXT mostly works with Polylang, the deficiencies outlined in Breadcrumb NavXT and WPML Compatibility apply to compatibility with Polylang as well. With Breadcrumb NavXT Polylang Extensions, string based settings within Breadcrumb NavXT and Custom Post Type root pages are translatable within Polylang.

Features

  • Automatically links to the correct Custom Post Type “root page” for the current language
  • Makes Breadcrumb NavXT settings that are strings available for translation via Polylang
  • Improves Breadcrumb NavXT widget’s Polylang compatibility

-John Havlik

[end of transmission, stay tuned]

How to Remove post_type From Breadcrumb NavXT URLs

Beginning with Breadcrumb NavXT 5.3.0, post type archive support was enhanced with the addition of the post_type query argument under various circumstances. Usually, this occurs when the post type is not the primary post type for the taxonomy (e.g. it is not the first post type in the object_type array for the taxonomy), or for date archives. While this is arguably the correct behavior, it is not right for every circumstance.

Breadcrumb NavXT 5.4.0 introduces a new filter, bcn_add_post_type_arg, which furnishes the ability to override the decision on when to include the post_type query argument. This article covers the basic usage of this filter, along with some hints for more advanced uses.

Basic Code

The most basic code, listed below, disables adding the post_type query argument for all resources.

add_filter('bcn_add_post_type_arg', 'my_add_post_type_arg_filt', 10, 3);
function my_add_post_type_arg_filt($add_query_arg, $type, $taxonomy)
{
return false;
}

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

Hints for (More) Advanced Uses

From the basic code above, notice that there are three parameters passed into the filter. The first is the decision Breadcrumb NavXT was going to make in regards to adding the post_type query argument. The second is the name of the post type that is under consideration for addition to the URL. Lastly, the third parameter is the name of the taxonomy, if applicable, for the archive the URL points to. With this information, more complex filtering/decision making can be achieved.

For example, it is possible to enable the post_type query argument for only specific post types, or for specific taxonomy archives. Or, the post_type query argument can be enabled for all but a specific post type or taxonomy. All it takes is a little conditional logic that looks at the second and third parameters of the filter function.

-John Havlik

[end of transmission, stay tuned]

Breadcrumb NavXT WPML Extensions 1.1.0

Announcing the immediate availability of Breadcrumb NavXT WPML Extensions 1.1.0. This version switches to the WPML 3.2+ API for translating strings. Backwards compatibility with WPML 3.1 (and older) is maintained. However, users of other plugins (Polylang) that provide emulations of the WPML API may no longer work. Speaking of which, Polylang will get its own extension in early 2016. Additionally, a bug that prevented updated setting strings from Breadcrumb NavXT from showing up in the string translation screen on non-multisite installs in a timely matter.

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

[end of transmission, stay tuned]