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 <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.
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…
- 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
Filters for Developers
These filters give you full control over how data is rendered and returned.
JS config override (highest priority):
-
window.InitPluginSuiteEmbedPostsConfigSet this object before the page renders (e.g. viawp_add_inline_scriptin 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_responseModify REST API response for posts. -
init_plugin_suite_embed_products_rest_responseModify REST API response for Woo products. -
init_plugin_suite_embed_posts_view_count_keysCustomize 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_limitOverride 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_excerptCustomize excerpt for posts. -
init_plugin_suite_embed_products_excerptCustomize excerpt for products.
Image control:
-
init_plugin_suite_embed_posts_imagesFilter image list for embedded post. -
init_plugin_suite_embed_products_imagesFilter image list for embedded product. -
init_plugin_suite_embed_posts_extracted_imagesFilter raw image URLs extracted from post content.
Favicon:
-
init_plugin_suite_embed_posts_favicon_urlOverride favicon for posts. -
init_plugin_suite_embed_products_favicon_urlOverride favicon for products.
HTML output filters:
init_plugin_suite_embed_posts_shortcode_htmlCustomize HTML output of the[init_embed_code]shortcode. Allows complete control over button markup, styling, and attributes.
Auto-insert locations:
init_embed_insert_locationsCustomize 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.
