Embed WordPress posts or products anywhere – like a Twitter Card. No iframe. No oEmbed. Just pure JS, full control, and beautiful design.
Pure JavaScript. Beautiful Cards. Works Anywhere.
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 <div> + <script> 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.
- 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-dataability for post/product embed data, discoverable viawp_get_abilities()and thewp-abilities/v1REST 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
<script>switching:init-embed.jsfor postsinit-embed-product.jsfor Woo products
- Embed attributes:
data-theme="light|dark|auto"– force or auto-detect themedata-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
Displays the Embed Generator button.
Attributes:
text: Button text labelclass: CSS class for wrapperpost_id: Optional post override
Under the Init Embed Posts category in the block inserter. Equivalent to [init_embed_code] – same markup, same behavior, just inserted visually with a live server-side preview in the editor. No block-level settings: it always reflects the current post or product; configure the default embed theme and gallery image limit from the Settings page.
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 anidandtype(postorproduct). Same data as the REST endpoints below.
Discoverable and executable via PHP (wp_get_abilities()), and — for sites that opt into exposing it — the wp-abilities/v1 REST namespace. Fully optional: on WordPress versions older than 6.9, this integration silently does nothing and the rest of the plugin is unaffected.
Returns data for embedding a post.
Returns data for embedding a WooCommerce product.
init_plugin_suite_embed_posts_rest_responseinit_plugin_suite_embed_products_rest_responseinit_plugin_suite_embed_posts_view_count_keysinit_plugin_suite_embed_posts_gallery_limit
init_plugin_suite_embed_posts_excerptinit_plugin_suite_embed_products_excerpt
init_plugin_suite_embed_posts_imagesinit_plugin_suite_embed_products_imagesinit_plugin_suite_embed_posts_extracted_images
init_plugin_suite_embed_posts_favicon_urlinit_plugin_suite_embed_products_favicon_url
init_plugin_suite_embed_posts_shortcode_html
init_embed_insert_locations
- Upload to
/wp-content/plugins/init-embed-posts - Activate in WordPress admin
- Use
[init_embed_code]— or the equivalent "Embed Button" block — to enable the generator - Copy + paste the embed wherever you like
GPLv2 or later — free, open source, developer-first.
Init Embed Posts is part of the Init Plugin Suite — a collection of blazing-fast, no-bloat plugins made for WordPress developers who care about quality and speed.