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.
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)
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.
[end of transmission, stay tuned]