Embed YouTube Block – Fast Loading Videos, Shorts & Playlists
The default embed block for YouTube videos sucks. It slows down your site. The more videos on the page the more it slow. This single-block plugin fixes that. Why this block is better than the default one: Instead of loading the entire iframe, only the video thumbnail is loaded, resulting in significant performance improvements Ability to play multiple different videos as a custom playlist or input a playlist ID to play the whole playlist Ability to use a custom image as the video thumbnail Ability to set a custom aspect ratio value for displaying any kind of YouTube videos Ability to loop continuously once it finishes playing Ability to show related videos from the same channel as the initial video Automatically load the video title as the caption The same UI as the default core/embed, and you can use the video title as the caption of the block with one click It can be transformed from/to the core embed block. Automatically convert all default core embed YouTube blocks to this block with one line of code. This plugin also provides a PHP API for developers to render a YouTube video URL as this block; or to automatically transform core/embed YouTube videos into this block. The simplest example is: better_youtube_embed_block_render_block( ['url' => 'https://youtu.be/paSXmpHU9K4'] ); The example with all the parameters is: better_youtube_embed_block_render_block( [ 'url' => 'https://youtu.be/paSXmpHU9K4', 'aspectRatio' => '16/9', 'isMaxResThumbnail' => false, 'thumbnailFormat' => 'jpg', 'caption' => 'My awesome video', 'caption_kses' => false, 'customThumbnail' => 'https://example.com/bg.jpg', 'settings' => ['loop' => 1, 'rel' => 0], 'echo' => false, ] ); To automatically transform all core/embed YouTube videos on your site to this block, you need to put the following code to the wp-config.php file or your theme/plugin: define('BYEB_SPEED_UP_YOUTUBE_VIDEOS', true); or add_filter( 'byeb_speed_up_youtube_videos', '__return_true' ); On iOS, browsers like Safari and Chrome require two clicks to play videos. If you want to allow users to play videos with a single click, you need to add the following code to the wp-config.php file or your theme/plugin: define('BYEB_FORCE_IFRAME_ON_UNSUPPORTED_BROWSERS', true); Please check out this page to see how fast it helps. The page contains around 30 embedded YouTube videos but they don’t slow down the page. 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. Breadcrumb Block – A simple breadcrumb trail block that supports JSON-LD structured data and is compatible with WooCommerce. 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 The plugin is developed using @wordpress/create-block.
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.