
[vc_row], [vc_column_text], and so on — inside the post content. The new site had no WPBakery installed, so Elementor had no idea what to do with that text. It just rendered the raw shortcode syntax on the page.<content:encoded> block:vc_row, vc_column, vc_column_text) and kept the actual content inside them[nectar_btn] shortcodes into real HTML links — text and URL pulled from the shortcode attributes[vc_custom_heading] into proper <h2> tags_thumbnail_id) so images wouldn't break on import[vc_raw_html] shortcodes. WPBakery doesn't store raw HTML as raw HTML — it stores it base64-encoded, and then URL-encoded on top of that. A form embed on the actual site looked like this in the export file:[fancy-ul], used for styled bullet lists, because it doesn't carry the vc_ prefix the rest of the script was keying off.[fancy-ul] blocks as if their contents were plain text needing markdown-style list conversion, which mangled lists that were already valid HTML. Third pass fixed that by checking whether a [fancy-ul] block already contained proper <ul>/<li> tags — if so, just strip the wrapper and leave the list alone.Posted Aug 19, 2026
Automated migration of 125 blog posts from WPBakery/Classic to clean HTML on Elementor.
0
0