Breadcrumb Block
This is a single-block plugin for the breadcrumb trail. It’s simple, lightweight, SEO-friendly, and WooCommerce compatibility. It also includes some simple separator icons. It works everywhere: Page Editor, Site Editor, and template files. How to customize the breadcrumb How to change/remove an item? add_filter( 'breadcrumb_block_get_item', function ( $item_args, $context, $breadcrumbs_instance ) { // Ignore items without context. if ( ! $context || ! ( $context['object'] ?? false ) ) { return $item_args; } // Eg: remove a term. if ( 'term' === ( $context['type'] ?? '' ) && 'term-slug' === $context['object']->slug ) { return false; } // Eg: Change the title of a page. if ( 'page' === ( $context['type'] ?? '' ) && page_id_to_change === $context['object']->ID ) { $item_args[0] = 'Make it shorter'; } return $item_args; }, 10, 3 ); $item_args is a 3-item array: [$item_label, $item_link, $item_attrs] $context is an associative array: ['type' => 'item type', 'object' => 'item object']. type can be one of the following values: front_page, home, shop, page, post, single, term, taxonomy, post_type_archive, search, 404, paged, author, date_year, date_month, date_day, attachment. How to change the markup of the block? add_filter( 'breadcrumb_block_get_breadcrumb_trail', function ( $markup, $args, $breadcrumbs_instance ) { return $markup; }, 10, 3 ); How to add or remove the items from the breadcrumb trail? add_filter( 'breadcrumb_block_get_items', function ( $items, $breadcrumbs_instance ) { return $items; }, 10, 2 ); How to use a custom separator for the breadcrumb trail? add_filter( 'breadcrumb_block_get_args', function ( $args ) { // For example, change separator. $args['separator'] = ' '; return $args; } ); The custom separator should be an inline SVG. To make sure it displays properly, it should have three attributes: width, height, and fill. The values of these attributes should be as follows: fill="currentColor" width="1em" height="1em". Using this hook, you can customize other attributes such as container, before, after, list_tag, item_tag, item_before, item_after, separator. How to prepend the blog page to all single posts? add_action( 'breadcrumb_block_single_prepend', function ( $post, $breadcrumbs_instance ) { if ( 'post' === $post->post_type ) { $blog_id = get_option( 'page_for_posts'); if ( $blog_id ) { $breadcrumbs_instance->add_item( get_the_title( $blog_id ), get_permalink( $blog_id ) ); } } }, 10, 2 ); If this plugin is useful for you, please do a quick review and rate it on WordPress.org to help us spread the word. I would very much appreciate it. Please check out my other plugins if you’re interested: Content Blocks Builder – Build custom layouts and blocks visually in the Block Editor without needing a code editor, using only core blocks and native Gutenberg features. Meta Field Block – A single block to display custom fields in the Block Editor without coding. It supports ACF, MetaBox, WooCommerce, meta, rest field, shortcode and more. Works everywhere: in the Site Editor (FSE), the Block Editor, inside Query Loop, WooCommerce Product Collection, Term Query blocks, and even in template files. SVG Block – A block to display SVG images as blocks. Useful for images, icons, dividers, and buttons. It allows you to upload SVG images and load them into the icon library. Icon separator – A tiny block just like the core/separator block but with the ability to add an icon. Block Enhancements – Adds practical features to blocks like icons, box shadows, transforms, etc. Counting Number Block – A block to display numbers with a counting effect Better YouTube Embed Block – A block to solve the performance issue with embedded YouTube videos. It can also embed multiple videos and playlists. The plugin is developed using @wordpress/create-block.
Top keywords
- block20×3.45%
- item13×2.25%
- args9×1.55%
- context9×1.55%
- add8×1.38%
- editor7×1.21%
- separator7×1.21%
- blocks6×1.04%
- id6×1.04%
- page6×1.04%
- return6×1.04%
- 'breadcrumb5×0.86%
Menu In Menu
This plugin enables a Custom Menu to “include” any other Custom Menu, so groups of items that get repeated across multiple menus can be defined just once and then included into any other menu at will. If you have a set of menu items that you repeat across several menus, it can be a bit of a pain when one of that set needs updating and you have to go through all your menus changing each one. This plugin allows you to define the subset of items as a separate menu, and then include that menu into any other menu. If you then need to maintain one of the items in the subset, you only need to update one menu, and the change automatically gets reflected in all the other menus that include that subset! It’s as easy to use as adding a Post, Page, Category or Tag to your menu… With the plugin activated, go to your Menus page in admin. As well as being able to add Posts, Categories, etc, to your menu, you should now see a metabox for Navigation Menus which has checkboxes for each of your defined Menus (if you don’t see the metabox, check your Screen Options settings at the top of the page). All you need to do is create your submenu (as you would any other menu), open the menu you want to insert the new submenu into, select the submenu from the Navigation Menus metabox, Add it, and position it. Save and you’re done! The inserted Menu replaces the Navigation Menu item in the menu. You can insert multiple instances of the same submenu into one menu, and you can include a submenu into as many other menus as you need. Perpetual Loops The one thing that the plugin guards against is getting into a never-ending loop : it won’t prevent you setting one up (see FAQs as to why), but it will not output any submenu that has itself as an antecedent. For example, you can set up menus such that Menu A includes Menu B, which includes Menu C. Fine, no problem. However, if you were to also add Menu B into Menu C as a Navigation Menu item, then no matter which menu you choose to output, you have a potential loop (… B, includes C, includes B, includes C, … and so on). If WP_DEBUG is enabled, the plugin will print a warning wherever it has taken action to prevent a loop condition. This behaviour can be changed by hooking into a filter (see FAQs). Frontend Only The plugin only performs the menu replacement at the frontend of WordPress (ie. not on Admin pages). This behaviour can be changed by hooking into a filter (see FAQs), but please ensure that you do not enable it for the Menus admin page!
Top keywords
- menu24×5.05%
- menus11×2.32%
- submenu