Advance Post Grid
The Advanced Post Grid plugin allows you to create customizable and responsive grid layouts to display your posts, pages, or any custom content dynamically. Designed for flexibility and ease of use, this plugin integrates seamlessly with the Gutenberg block editor, offering an intuitive way to showcase your content in a visually appealing grid format. Whether you’re building a blog, portfolio, or product showcase, this plugin gives you full control over the number of columns, layout styling, and content arrangement.. Features Dynamic Column Control: Choose the number of columns to display in the grid, adapting to your design requirements. Customizable Layouts: Style your grids with custom CSS or use default settings for a clean and responsive design. Dynamic Content Support: Display posts, pages, or any REST-enabled public post type with ease. Mobile Responsive: Per-block tablet and mobile column controls with an independent responsive toggle. Shortcode Support: Use [advance_post_grid] anywhere — pages, widgets, classic editor. Developer Friendly: Extend the plugin’s functionality with hooks, filters, and templates. Shortcode Use [advance_post_grid] anywhere shortcodes are supported — pages, widgets, or the classic editor. Available attributes (all optional): posttype — Post type to display. Default: post. Accepts any REST-enabled public post type slug. postgrid — Desktop column count. Default: 3. Accepts: 1, 2, 3, 4. postgridtablet — Tablet column count. Default: 2. Only applied when enablepostgridres=”true”. postgridmobile — Mobile column count. Default: 1. Only applied when enablepostgridres=”true”. enablepostgridres — Enable independent tablet and mobile columns. Default: true. Accepts: true, false. postperpage — Number of posts per page. Default: 12. postorder — Sort direction. Default: DESC. Accepts: ASC, DESC. postorderby — Sort field. Default: title. Accepts: title, date, modified, menu_order, rand, comment_count. showhidepagi — Show pagination. Default: true. Accepts: true, false. showhidelink — Show post links and Read More button. Default: true. Accepts: true, false. showhidecat — Show category badges. Default: true. Accepts: true, false. showhidedate — Show post date. Default: true. Accepts: true, false. showhidert — Show estimated read time. Default: true. Accepts: true, false. Example: [advance_post_grid posttype=”product” postgrid=”4″ postperpage=”8″ postorderby=”date” showhidedate=”false” showhidert=”false”]
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.