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.
Top keywords
- block26×4.28%
- youtube11×1.81%
- videos10×1.64%
- embed8×1.32%
- blocks7×1.15%
- core7×1.15%
- ability6×0.99%
- video6×0.99%
- core embed5×0.82%
- custom5×0.82%
- editor5×0.82%
- youtube videos5×0.82%
Init Embed Posts – Stylish, Fast, Portable
Init Embed Posts lets you embed WordPress content externally – with beautiful cards, real-time REST API data, and zero friction. Instead of using iframes or clunky oEmbed, this plugin gives you clean + snippets, which load the post or product dynamically using WordPress REST API. Designed for speed, style, and full control – using pure JavaScript and smart caching. Prefer working in the Block Editor? The Embed Button block does exactly what the [init_embed_code] shortcode does – no shortcode needed if you’d rather insert it visually, with a live preview right in the editor. For AI agents and automated tools, embed data (title, excerpt, thumbnail, images, and — for WooCommerce products — price) is also exposed as a read-only Abilities API ability (WordPress 6.9+), the same data used to render the cards. This plugin is part of the Init Plugin Suite — a collection of minimalist, fast, and developer-focused tools for WordPress. GitHub repository: https://github.com/brokensmile2103/init-embed-posts Features: Embed any public post or WooCommerce product Works anywhere: raw HTML, CMS, blog, landing page… Block Editor block: “Embed Button”, equivalent to [init_embed_code], with a live preview in the editor Abilities API (WordPress 6.9+): read-only get-embed-data ability for post/product embed data, discoverable via wp_get_abilities() and the wp-abilities/v1 REST namespace Beautiful card layout: Site name + favicon Title, excerpt, date (for posts) Featured image, horizontal gallery (optional) Product name, price, sale price with strikethrough “Add to cart” styled button (optional) Auto dark mode, adapts to embedding site Hover effects and modern UI Skeleton loader while waiting for data JS-only, no iframe, no jQuery, no dependency Lazy-loads embed cards as they scroll into view Auto-detects embeds inserted dynamically after page load (AJAX/SPA) Modal UI to generate personalized embed code Smart switching: init-embed.js for posts init-embed-product.js for Woo products Embed attributes: data-theme="light|dark|auto" – force or auto-detect theme data-image, data-featured, data-cart – control content Cached REST API (1 year, revalidated via ETag when the post/product is updated) Price range display for WooCommerce variable products Configurable gallery image limit and default embed theme (Settings page) Developer filters to customize data and HTML What’s New in Version 2.0.0 Block Editor support: new “Embed Button” block, equivalent to the [init_embed_code] shortcode, with a live editor preview — optional, the shortcode still works exactly as before Abilities API support (WordPress 6.9+): new read-only init-embed-posts/get-embed-data ability for post/product embed data — optional and fully backward-compatible on older WordPress versions Requires at least raised from 5.5 to 6.9 to support the Abilities API. Requires PHP remains 7.4 See full details in the changelog below. Abilities API (WordPress 6.9+) On WordPress 6.9 and above, Init Embed Posts registers one read-only ability under the init-embed-posts category: init-embed-posts/get-embed-data — returns embed data (title, excerpt, thumbnail, images, and — for WooCommerce products — price) for a published post or product, given an id and type (post or product) This is discoverable and executable via PHP (wp_get_abilities()), and — for sites that opt into exposing it — the wp-abilities/v1 REST namespace, using the exact same data as the REST endpoints below. This integration is fully optional: on WordPress versions older than 6.9, it silently does nothing and the rest of the plugin is unaffected. Filters for Developers These filters give you full control over how data is rendered and returned. JS config override (highest priority): window.InitPluginSuiteEmbedPostsConfig Set this object before the page renders (e.g. via wp_add_inline_script in a theme) to override embed UI settings in JS, taking priority over the plugin’s Settings page. Currently supports: theme – "light", "dark", or "auto". Overrides the “Default embed theme” setting for the embed code generator button/modal. Example: window.InitPluginSuiteEmbedPostsConfig = { theme: ‘dark’ }; REST response filters: init_plugin_suite_embed_posts_rest_response Modify REST API response for posts. init_plugin_suite_embed_products_rest_response Modify REST API response for Woo products. init_plugin_suite_embed_posts_view_count_keys Customize the list of post meta keys used to detect view count. Supports array of meta keys, ordered by priority. init_plugin_suite_embed_posts_gallery_limit Override the gallery image limit (defaults to the Settings page value, 1–10) used for both post and product embeds. Excerpt filters: init_plugin_suite_embed_posts_excerpt Customize excerpt for posts. init_plugin_suite_embed_products_excerpt Customize excerpt for products. Image control: init_plugin_suite_embed_posts_images Filter image list for embedded post. init_plugin_suite_embed_products_images Filter image list for embedded product. init_plugin_suite_embed_posts_extracted_images Filter raw image URLs extracted from post content. Favicon: init_plugin_suite_embed_posts_favicon_url Override favicon for posts. init_plugin_suite_embed_products_favicon_url Override favicon for products. HTML output filters: init_plugin_suite_embed_posts_shortcode_html Customize HTML output of the [init_embed_code] shortcode. Allows complete control over button markup, styling, and attributes. Auto-insert locations: init_embed_insert_locations Customize or filter valid auto-insert positions (e.g., after title, before content, etc). License This plugin is licensed under the GPLv2 or later. You are free to use, modify, and distribute it under the same license.