Init Embed Posts – Plugin nhúng bài viết nhẹ, đẹp, không cần iframe

Phiên bản: 1.6 English version

Init Embed Posts – Plugin nhúng bài viết nhẹ, đẹp, không cần iframe
Init Embed Posts giúp bạn nhúng bài viết từ WordPress ra bất kỳ website nào bằng một đoạn mã đơn giản. Không iframe, không oEmbed, không phụ thuộc nền tảng trung gian – chỉ cần một đoạn script nhẹ và bạn toàn quyền kiểm soát cách bài viết hiển thị. Plugin được tối ưu cho tốc độ, khả năng tùy biến, và trải nghiệm người dùng hiện đại.

Tính năng nổi bật

  • Nhúng bài viết hoặc sản phẩm WooCommerce bằng script nhẹ, sử dụng REST API riêng tối ưu hiệu suất
  • Không dùng iframe, không cần oEmbed, không phụ thuộc bên thứ ba
  • Giao diện thẻ hiện đại, hiển thị đẹp trên mọi nền:
    • Với bài viết: favicon, tên trang, tiêu đề, excerpt, tối đa 5 ảnh preview
    • Với sản phẩm: ảnh đại diện, tên sản phẩm, giá, giá khuyến mãi (gạch giá), nút “Thêm vào giỏ hàng”
  • Skeleton loading trong khi chờ tải dữ liệu – trải nghiệm mượt mà, không chớp nháy
  • Tự động nhận diện sáng/tối theo theme của website nhúng (auto dark mode)
  • Modal UI tích hợp trong trình soạn thảo để lấy mã nhúng nhanh chóng
  • Viết hoàn toàn bằng Vanilla JS, không dùng jQuery hay thư viện ngoài
  • Trả về dữ liệu JSON cố định, tối ưu cho cache/CDN (ví dụ: Cloudflare)
  • Dùng script riêng biệt cho post (init-embed.js) và sản phẩm (init-embed-product.js)
  • Hỗ trợ data-type="product" trong đoạn nhúng để nhận diện loại nội dung
  • Có thể tự động chèn nút “Nhúng sản phẩm” sau phần meta của sản phẩm (tuỳ chọn bật/tắt)
  • Có sẵn hook/filter để developer tùy biến giao diện và dữ liệu theo ý muốn

Hướng dẫn sử dụng

  1. Kích hoạt plugin như bình thường
  2. Thêm shortcode [init_embed_code] vào bài viết hoặc sản phẩm để hiện nút “Lấy mã nhúng”
  3. Click nút → mở modal → chọn tùy chọn → copy đoạn code
  4. Dán đoạn code vào bất kỳ website nào bạn muốn hiển thị nội dung

Ví dụ mã nhúng

<!-- Nhúng bài viết -->
<div class="init-embed" data-id="123" data-origin="https://example.com"></div>
<script async src="https://example.com/wp-content/plugins/init-embed-posts/assets/js/init-embed.js?v=1.3"></script>

<!-- Nhúng sản phẩm WooCommerce -->
<div class="init-embed-product" data-id="456" data-type="product" data-cart="Thêm vào giỏ hàng" data-origin="https://example.com"></div>
<script async src="https://example.com/wp-content/plugins/init-embed-posts/assets/js/init-embed-product.js?v=1.3"></script>

Demo: Nhúng bài viết & sản phẩm

Bạn có thể nhúng bài viết hoặc sản phẩm từ các trang khác một cách đơn giản. Ví dụ nhúng bài viết:

Tương thích và hiệu suất

  • Yêu cầu WordPress 5.5 trở lên
  • PHP 7.4 trở lên
  • Hoạt động tốt trên mọi theme (Astra, Blocksy, Kadence…)
  • Không tạo bảng CSDL, không ghi log, không tracking – siêu nhẹ và an toàn

Dành cho Developer

  • init_plugin_suite_embed_posts_rest_response: chỉnh sửa JSON trả về khi nhúng bài viết
  • init_plugin_suite_embed_products_rest_response: chỉnh sửa JSON trả về khi nhúng sản phẩm WooCommerce
  • init_plugin_suite_embed_posts_excerpt: tùy chỉnh nội dung đoạn trích (excerpt) của bài viết nhúng
  • init_plugin_suite_embed_products_excerpt: tùy chỉnh nội dung đoạn trích của sản phẩm nhúng
  • init_plugin_suite_embed_posts_images: thay đổi danh sách ảnh được nhúng từ nội dung bài viết
  • init_plugin_suite_embed_posts_favicon_url: can thiệp URL favicon hiển thị trong khung nhúng
  • init_plugin_suite_embed_posts_view_count_keys: tùy chỉnh danh sách meta key dùng để lấy lượt xem từ post meta (ưu tiên theo thứ tự)
  • init_embed_insert_locations: quyết định vị trí nút “Lấy mã nhúng” xuất hiện ở frontend

Nếu bạn là developer muốn tích hợp sâu hơn vào theme/plugin của mình, hãy xem series Init Embed Posts toàn tập – nơi tổng hợp toàn bộ hướng dẫn từ cơ bản đến nâng cao.

Bắt đầu ngay

Không cần dùng iframe lỗi thời hay API phức tạp. Init Embed Posts cho phép bạn chia sẻ nội dung WordPress ra bên ngoài một cách nhẹ nhàng, đẹp mắt và hoàn toàn nằm trong tay bạn.

Đánh giá

4.6/5 (11)

Changelog

  • 1.6 – Khắc phục lặp cấu hình embed khi dùng shortcode nhiều lần
    • Khắc phục lỗi InitEmbedPostsSettings bị in lặp khi shortcode embed xuất hiện nhiều lần trên cùng một trang.
    • Đảm bảo script và cấu hình embed chỉ được khởi tạo một lần duy nhất trong mỗi request.
    • Cải thiện độ ổn định khi tự động chèn embed button ở nhiều vị trí nội dung.
  • 1.5 – Cải thiện xử lý ảnh và tối ưu REST API
    • Nâng cấp hàm init_plugin_suite_embed_posts_extract_images() để xử lý ảnh an toàn và chính xác hơn.
    • Loại bỏ các URL không hợp lệ như data: hoặc blob: để tránh lỗi khi render embed card.
    • Chuẩn hoá và lọc trùng URL ảnh, đảm bảo danh sách ảnh trả về luôn sạch và ổn định.
    • Giới hạn số lượng ảnh rõ ràng hơn, giúp embed card ổn định dù nội dung bài viết dài.
    • Tối ưu nhỏ bên trong REST API giúp giảm rủi ro lỗi và tăng độ tin cậy khi gọi từ nhiều website.
  • 1.4 – Thêm filter cho shortcode button
    • Thêm filter init_embed_posts_shortcode_html để tùy chỉnh HTML của shortcode button.
    • Cho phép developer override hoàn toàn markup và style của embed button.
    • Cải thiện khả năng mở rộng cho theme và plugin developer.
  • 1.3 – Toàn bộ giao diện modal bằng JS, thêm hỗ trợ review & meta
    • Thay thế toàn bộ giao diện modal nhúng bằng JavaScript động – không còn cần template PHP.
    • Bổ sung 2 tuỳ chọn mới: Hiển thị thông tin bài viếtHiển thị đánh giá.
    • Thông tin bài viết hiển thị thời gian đăng, số lượt xem và bình luận – kèm icon đẹp.
    • Nếu cài plugin Init Review System sẽ hiển thị đánh giá 5 sao và điểm trung bình.
    • API trả thêm comment_count, view_countreview.
    • Tự động nhận dữ liệu view từ nhiều plugin phổ biến (Jetpack, WP-PostViews, WP Statistics…).
    • Có thể tùy chỉnh meta view qua filter init_plugin_suite_embed_posts_view_count_keys.
    • Trả về thời gian đăng theo kiểu “3 days” (không cần xử lý phía JS).
    • Script init-embed-ui.js chỉ được load khi có shortcode – tối ưu hiệu năng.
  • 1.2 – Dọn dẹp và tối ưu theme mặc định
    • Thêm file uninstall.php để xóa setting khi gỡ plugin.
    • Đổi theme mặc định từ auto sang light để tránh lỗi trên các site không hỗ trợ dark mode.
  • 1.1 – Nhúng sản phẩm WooCommerce
    • Hỗ trợ nhúng sản phẩm WooCommerce với layout thẻ sản phẩm.
    • Hiển thị ảnh đại diện, tên sản phẩm, giá và giá khuyến mãi (hiệu ứng gạch giá).
    • Hỗ trợ nút “Thêm vào giỏ hàng”.
    • Dùng script riêng init-embed-product.js – tách biệt hoàn toàn với post.
    • Embed code bổ sung data-type="product" để xác định loại nội dung.
    • Có thể tự động chèn nút “Nhúng sản phẩm” sau phần meta của sản phẩm (tuỳ chọn bật/tắt).
  • 1.0 – Phiên bản đầu tiên của Init Embed Posts
    • Nhúng bài viết WordPress ra bất kỳ website nào bằng script đơn giản, không dùng iframe.
    • Giao diện thẻ bài viết hiện đại: favicon, domain, tiêu đề, excerpt và tối đa 5 ảnh preview.
    • Tự động nhận dark/light mode từ website nhúng.
    • Hỗ trợ skeleton loading trong lúc chờ tải dữ liệu từ API.
    • Modal UI thân thiện trong trình soạn thảo để copy mã nhúng nhanh chóng.
    • Viết hoàn toàn bằng Vanilla JS, không jQuery, không phụ thuộc ngoài.
    • REST API riêng trả về JSON cố định – tối ưu cho cache/CDN như Cloudflare.
    • Có sẵn filter & hook để tùy chỉnh dữ liệu và giao diện embed card.
    • Không tạo bảng mới, không ghi log, không tracking – plugin siêu nhẹ, thân thiện với mọi site.
Made with in HCMC.

Bình luận


1 bình luận
  • Admin

    10/06/2025 lúc 12:26

    demo ngay tại trang nhé, bạn có thể lấy mã nhúng ở post meta (dưới ảnh bìa) của bất kì bài viết và nhúng ở bất kì đâu! 😊

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...