Added — WPML and Polylang integration: the texts of Unblock blocks are translated with the page, their dynamic data kept in place; a translation keeps the JavaScript of its source page; the editor preview and the page's data follow the page's language.
Added — Yoast SEO, Rank Math, SEOPress and All in One SEO integration: they read Unblock pages as they show, so a page gets its description and share image from its content, Yoast SEO and Rank Math analyze it in the editor, and your AI client writes its SEO title and description over MCP.
Added — Unblock AI: claude.ai, ChatGPT and other AI clients connect over MCP once you approve them on your site, with no password to copy, with full or read-only access; the MCP tab lists them and disconnects each one.
Improved — Unblock AI: over MCP, your AI client builds a page in fewer requests and with about 40% fewer tokens: it sees Unblock's tools directly, knows your site's styles from the start, and each change answers with only the blocks it wrote.
Changed — Element block: the page no longer adds a space of its own between blocks, in loops and conditions too, so two links with no space between them in the HTML now touch, as in the editor.
Added — WPML and Polylang integration: the texts of Unblock blocks are translated with the page, their dynamic data kept in place; a translation keeps the JavaScript of its source page; the editor preview and the page's data follow the page's language.
Added — Yoast SEO, Rank Math, SEOPress and All in One SEO integration: they read Unblock pages as they show, so a page gets its description and share image from its content, Yoast SEO and Rank Math analyze it in the editor, and your AI client writes its SEO title and description over MCP.
Added — Unblock AI: an MCP tab in the AI sidebar installs the MCP Adapter in one click and gives the configuration that connects your AI client, such as Claude Code, Cursor or VS Code; a running session shows as a green dot on the Unblock AI button.
Added — Unblock AI: claude.ai, ChatGPT and other AI clients connect over MCP once you approve them on your site, with no password to copy, with full or read-only access; the MCP tab lists them and disconnects each one.
Added — Unblock AI: over MCP, your AI client can create and edit your pages, posts and block theme templates, such as the header and footer, without an open editor; it asks you before changing a published page or a template, and can work on a draft copy you preview first.
Added — Unblock AI: over MCP, your AI client can change your site's CSS, your block theme's content width, colors and fonts, and install Google Fonts or your own font files, which your site serves itself.
Added — Unblock AI: over MCP, your AI client can manage your pages and posts, categories and tags, media and their alternative text, custom fields, post types and taxonomies with ACF, Pods or Meta Box, and your site's title, logo, front page and permalinks.
Added — Unblock AI: over MCP, your AI client can install a plugin from WordPress.org, such as ACF, and read any page of your site as it shows to you, drafts included.
Improved — Unblock AI: over MCP, your AI client builds a page in fewer requests and with about 40% fewer tokens: it sees Unblock's tools directly, knows your site's styles from the start, and each change answers with only the blocks it wrote.
Improved — Unblock AI: over MCP, a page the AI builds no longer gets a second main heading under the title your theme prints.
Changed — Unblock AI: four MCP tools are renamed: unblock/update-content to unblock/update-block-content, unblock/update-attributes to unblock/update-block-attributes, unblock/update-script to unblock/update-block-script and unblock/update-styles to unblock/update-css; your AI client may ask you before running the tools that rewrite blocks or styles.
Fixed — Unblock AI: a running MCP session could no longer be seen or stopped once the chat had a message.
Fixed — Unblock AI: over an MCP session, fonts the editor could not install were skipped without a word; your AI client is now told why.
Added — Unblock AI: the AI can delete a CSS rule you no longer use, or clear the styles of a breakpoint, when you ask.
Improved — Unblock AI: the AI no longer changes your theme's widths, colors or fonts through its CSS, and tells you when its styles on tags also restyle your theme's header and footer.
Improved — Unblock AI: the AI knows the fonts your theme ships and uses them instead of downloading a copy.
Improved — Unblock AI: the AI reads the text of the WordPress blocks in your page, such as paragraphs and headings, so it can tell them apart.
Improved — Unblock AI: the AI sidebar uses the controls and colors of the rest of Unblock, and its text is easier to read.
Fixed — Unblock AI: a generated page could come without any styles; the assistant now writes the ones it left out.
Fixed — Unblock AI: an image asked in a wide or 4:3 format could fail to generate; it now takes the closest format the provider supports.
Fixed — Unblock AI: with image generation on, a page could get placeholder images instead of generated ones without a word; the chat now says so.
Fixed — Unblock AI: when the AI rewrote a section, the WordPress blocks it held, such as headings and paragraphs, could come back empty or be deleted, and a stray bid or data-unbk-name attribute could stay in the page's HTML.
Fixed — Unblock AI: a block the AI rewrote or moved could lose its script, its name or its media link, or get a second script.
Fixed — Unblock AI: rewriting a section, a loop or a condition could nest it inside a copy of itself, or lose the blocks it held.
Fixed — Unblock AI: when the AI rewrote the text of a heading, a paragraph or a card, the old text could stay while the AI was told it had changed.
Fixed — Unblock AI: a change the editor could not apply, such as on a locked block or a block copied from elsewhere, was reported as done; it is now refused, the chat shows it and the AI is told why.
Fixed — Unblock AI: blocks moved into another section stayed where they were, and blocks inserted after one inside a section landed after the section.
Fixed — Unblock AI: changing a block's class or ID kept the old one when it had styles, and an element the AI meant to show could get hidden.
Fixed — Unblock AI: in the editor, one undo could revert several changes the AI made to a block.
Fixed — Unblock AI: an SVG the AI edited, such as a logo, could lose its gradients.
Fixed — Unblock AI: a style the AI sent back as it read it got a second copy of its media query, which no longer followed your breakpoints.
Fixed — Unblock AI: smaller AI models could fail every change adding blocks, and in the chat build a page with no styles on an empty page.
Fixed — Unblock AI: a form the AI built showed no message once sent; the AI now adds one for success and one for an error.
Fixed — Unblock AI and Library: text placed directly in a section was dropped, and a Twig loop or condition inside bold, italic or link text was lost, when the AI wrote it or a pattern was inserted.
Fixed — Unblock AI and Library: the page lost the spaces and line breaks of the HTML the AI wrote, a pattern held or you typed in a block's HTML, such as the space between two links or the lines of a code sample, and Twig written with {%- or -%} stayed as text.
Fixed — Unblock AI and Library: in the HTML the AI wrote, a pattern held or you typed in the HTML inspector, a loop between the rows of a table ended up outside it, Twig inside a tag, a script, a style or an SVG was lost, and an attribute holding quotes, such as title='Say "hi"', came back cut.
Added — Element block: an anchor has a link button in its toolbar, as in the WordPress button block, to search a page or type a URL, open it in a new tab or mark it nofollow (Ctrl+K).
Added — Element block: a textarea has the Insert data button a text has.
Changed — Element block: the page no longer adds a space of its own between blocks, in loops and conditions too, so two links with no space between them in the HTML now touch, as in the editor.
Fixed — Element block: an ID set through a selector could be missing on the page while the editor showed it.
Fixed — Element block: styles aimed at some attributes, such as an option's value, a muted video or a list's start number, could be missing on the page.
Fixed — Element block: a rule aimed at an element inside a text, such as .card b, or at an empty element, such as an <i></i> drawn as a caret, was never printed on the page, and the empty element was removed at the first edit.
Fixed — Element block: pasting a URL into an anchor, or adding a link from its text's toolbar, put a link inside the link, which broke it on the page.
Fixed — Element block: a textarea from the HTML inspector, the AI or a pattern showed empty in the editor, and the dynamic data of a textarea, an SVG or an iframe's address showed unresolved there.
Fixed — Editor: dynamic data kept its old value once the page was saved, such as {{ post.title }} showing "Auto Draft" until the page was reloaded.
Fixed — Editor: a block added or duplicated, then saved with no other change, could lose its JavaScript when a user without the right to post unfiltered HTML saved the page later.
Fixed — Editor: a block pasted from another post or inserted from a pattern could show its original's text on a page showing both, such as a mega menu.
Changed — Conditions: the blocks inside a false Condition are no longer rendered, so the page loads faster and prints only the styles and scripts it shows; as with {% if %} in Twig, a Variable placed inside then defines nothing.
Fixed — Loop block: a core block placed directly in a loop lost its styles, such as a link color.
Fixed — Loop block: when a block failed inside a loop, what came after it on the page could show that loop's item instead of its own data.
Fixed — Loop block: in the editor, the first item could show sample data, such as a product on sale, before its own.
Fixed — Loop block: a loop written in Twig with a taxonomy, meta or date filter showed none in the Query panel, and a filter added there removed it; a query value written as an expression, such as 'a' ~ post.id, could reach WordPress split in two.
Fixed — Conditions: "In list" on a post type, an author or a term never matched, such as Post Type in product, post, page.
Added — Dynamic data: the __() function translates a text with WordPress, as in Timber: {{ __('Posted on %s', 'my-theme')|format(post.date) }}.
Changed — Dynamic data: in follows Twig, so '1' in [1, 2, 3] and a term's name in post.categories are true, and an empty field is no longer found in every text.
Changed — Dynamic data: + merges two lists, as in Twig: [1, 2] + [3, 4, 5] gives [1, 2, 5].
Changed — Dynamic data: number_format uses your site's language for its separators when you give none, as Timber does, such as 1 234,50 on a French site.
Changed — Dynamic data: term.posts and post.children run plugins' query filters, as a loop does, so a plugin such as WPML keeps the page's language.
Fixed — Dynamic data: a list or a date joined with ~ or + printed "Array" or emptied the expression, and some expressions, such as 1..'' or 0 ** -1, logged PHP warnings.
Fixed — Dynamic data: post.author == 1 was true whatever the author; test the ID with post.author.id == 1.
Fixed — Dynamic data: a range with a text bound could pass the 1,000-item limit, and range('0', 'z') gave nothing while '0'..'z' listed the characters.
Fixed — Dynamic data: time_ago read dates two hours off in Paris, and date_i18n could print a date field a day early; both now use your site's timezone.
Fixed — Twig: {% set %} and {% for %} on get_posts(), get_terms() or get_users() followed by a filter, such as |filter or |slice, lost the filter once the HTML became blocks.
Fixed — At-rules: turning an at-rule off in the at-rules manager, or renaming its token, deleted the styles written under it from every selector once saved.
Fixed — CSS managers: Uncategorized could not be opened in the selectors, variables and at-rules managers on a site whose CSS came from an import, the AI or the library, and variables typed in the variables manager's editor view could not be saved on a site with no variable collection.
Fixed — CSS import: an at-rule written inside another, such as a @supports inside a @media, lost its rules, and some at-rules were saved altered, such as @supports (margin: 1px 2px), so their rules applied where they should not.
Fixed — CSS import: a @keyframes, @property or @counter-style inside a @media, a @view-transition, a new @starting-style and the rules of a @scope imported again were dropped.
Fixed — CSS import: a @keyframes imported again with changes kept its old steps, and one setting only CSS variables became variable collections.
Fixed — CSS import: rules written for an at-rule turned off in the at-rules manager were dropped; they are now kept and apply once it is turned back on.
Fixed — CSS import: rules Unblock has no place for, such as @font-face or @page, were dropped without a word; the importer, the chat and your AI client now name them.
Fixed — CSS import: CSS variables set on an existing selector made a collection named after it, and two /* unbk … :next */ directives before one rule kept only the last.
Fixed — CSS selectors: a rule on a pseudo-element such as ::-webkit-scrollbar, with a state inside :not() such as p:not(:empty), or with a state the editor did not show, such as details:open > summary, was never printed on the page; it now is once the rule is added again.
Fixed — CSS selectors: on a selector ending with a pseudo-element, the style panel showed the element's values instead of the pseudo-element's.
Improved — Loop block and custom fields: the images, posts and users they show load together rather than one by one, so pages render faster.
Improved — Pages no longer load all the site's styles to show their blocks, so they use far less memory and render faster on sites with many styles; pages without a section load less CSS.
Fixed — Fonts: installing or changing a font could undo global styles changes made elsewhere since the editor was opened, such as a color set in the Site Editor.
Fixed — Multisite: when Unblock was deleted, the main site's "Remove all data on uninstall" setting decided for every site, and sites past the 100th kept their data.