15th Feb '24
/
0 comments

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;
});
Get access to all 610 Bricks code tutorials with BricksLabs Pro

Leave the first comment

 

Related Tutorials..

Pro
x Number of Random Bricks Query Loop Items(s) to be Shown Every x Hours

x Number of Random Bricks Query Loop Items(s) to be Shown Every x Hours

Showing how to display one random row of a Meta Box group for an hour and then output another random row.
Pro
“Truncate text to these many characters” Bricks Control

“Truncate text to these many characters” Bricks Control

Bricks provides a :<number> dynamic data tag modifier that can be used to limit the amount of text by the specified number of words. Ex.:…