Filtering Breadcrumbs in Bricks

In the Bricks Facebook group a user asks:

Hi! Is there a PHP filter to customize the Bricks breadcrumbs? I want to replace /Uncategorized/ with a link to another page (not an archive).

Bricks has a bricks/breadcrumbs/items filter (undocumented as of today) that can be used to modify the breadcrumbs’ output programmatically.

For example,

add_filter( 'bricks/breadcrumbs/items', function ( array $breadcrumb_items ): array {
  if ( ! is_singular( 'post' ) ) {
    return $breadcrumb_items;
  }

  if ( isset( $breadcrumb_items[1] ) ) {
    $breadcrumb_items[1] = str_replace( 'category/uncategorized/', '', $breadcrumb_items[1] );
  }
  
  return $breadcrumb_items;
});

will replace all instances of category/uncategorized/ in the breadcrumbs on single posts in the front end with an empty string thereby effectively linking Uncategorized to the site’s homepage.

If you are using the BricksExtras’ Site Breadcrumbs element instead (you should, because it has more configurable options) just change the filter name to bricksextras/breadcrumbs/.

add_filter( 'bricksextras/breadcrumbs/', function ( array $breadcrumbsFlat ): array {
  if ( ! is_singular( 'post' ) ) {
    return $breadcrumbsFlat;
  }

  if ( isset( $breadcrumbsFlat[1] ) ) {
    $breadcrumbsFlat[1] = str_replace( 'category/uncategorized/', '', $breadcrumbsFlat[1] );
  }
  
  return $breadcrumbsFlat;
});
Instant access to 390+ Bricks code tutorials with BricksLabs Pro

Leave the first comment