[{"id":49027,"post":124315,"parent":0,"author":18346928,"author_name":"Nik McLaughlin","author_url":"https:\/\/nikmclaughlin.com","date":"2026-07-08T18:33:45","date_gmt":"2026-07-08T18:33:45","content":{"rendered":"<p>We discussed this a bit in the <span tabindex=\"0\" class=\"glossary-item-container\">Core<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Core<\/span> <span class=\"glossary-item-description\">Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> AI meeting today, but I\u2019ll reiterate my two main concerns here for visibility:<\/p>\n<p>1. Aligned with what <a href=\"https:\/\/profiles.wordpress.org\/justlevine\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>justlevine<\/a> raised above, the canonical AI <span tabindex=\"0\" class=\"glossary-item-container\">plugin<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Plugin<\/span> <span class=\"glossary-item-description\">A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> gives us an opportunity to test out these new <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> surfaces to 30k+ users who are likely to consume Abilities without taking on the backward-compatibility burden of marching directly to Core.\n<\/p>\n<blockquote><p>Settings, users, and posts are about as basic as WordPress gets, so my starting point is that core should have abilities to read (and write) them.<\/p><\/blockquote>\n<p>I fully and strongly agree that Core should have these abilities, which is why we should be figuring this all out. But given the current lack of clarity around naming, structure, conventions, etc., I don\u2019t think we\u2019re ready to commit to backward-compatibility for these abilities. Those API design issues will not result in bugs being reported during a <span tabindex=\"0\" class=\"glossary-item-container\">beta<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Beta<\/span> <span class=\"glossary-item-description\">A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span> period, the Abilities you describe should work well, but that won\u2019t help us get the design right. Moving these to the AI plugin gives us a space to iterate at the design level.<\/p>\n<p>2. Re: the 7.2 abilities, I\u2019m not clear why we\u2019ve opted for a single `manage` ability instead of separate `create_`, `update_`, and `delete_` abilities for each entity. On the call today, <a href=\"https:\/\/profiles.wordpress.org\/jorgefilipecosta\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jorgefilipecosta<\/a> mentioned that a single `manage` ability was introduced to avoid proliferating tools in an LLM context. Also in the thread above:<\/p>\n<blockquote><p>it was suggested that including a verb on the read version may help LLMs, and that\u2019s where the read name originated.<\/p><\/blockquote>\n<p>This proposal seems to be conflating Abilities and Tools in a problematic way. I don\u2019t have strong opinions on whether we use \u201cget\u201d or \u201cread\u201d so others can chime in there, but we shouldn\u2019t be defining Abilities specifically for LLM consumption. As you also mentioned in that reply, the Abilities API is:<\/p>\n<blockquote><p>a first-class, cross-context functional API that other tools and applications can use to interface with WordPress<\/p><\/blockquote>\n<p>Therefore Abilities need to be defined with that \u201cfirst-class, cross-context\u201d functionality in mind. They are atomic functional primitives defined, registered, and consumable anywhere within WordPress. Concerns with how those are exposed to any particular transport layer (REST, <span tabindex=\"0\" class=\"glossary-item-container\">CLI<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CLI<\/span> <span class=\"glossary-item-description\">Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.<\/span><\/span><\/span>, MCP, etc.) are valid and important, but that comes after the definition\/registration itself.<br \/>\nSo to put that in an active phrasing: I\u2019d propose that we break out the `manage` abilities into individual actions following a <span tabindex=\"0\" class=\"glossary-item-container\">CRUD<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CRUD<\/span> <span class=\"glossary-item-description\">Create, read, update and delete, the four basic functions of storing data. (More on <a href=\"http:\/\/en.wikipedia.org\/wiki\/Create,_read,_update_and_delete\">Wikipedia<\/a>.)<\/span><\/span><\/span> framework. That gives a more granular surface area that all integrating transports can operate upon. The WooCommerce team has a good write-up about their approach to this <a href=\"https:\/\/developer.woocommerce.com\/2026\/05\/12\/mcp-abilities-api-10-9\/#h-why-domain-abilities\" rel=\"nofollow ugc\">in this article<\/a>.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/02\/merge-proposal-expanding-wordpress-core-abilities\/#comment-49027","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/c41829ee2155a7e4fed87fdb63e8e661541004af8c7dc9ab25db3d905c1a8b43?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/c41829ee2155a7e4fed87fdb63e8e661541004af8c7dc9ab25db3d905c1a8b43?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/c41829ee2155a7e4fed87fdb63e8e661541004af8c7dc9ab25db3d905c1a8b43?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/18346928"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124315"}]}},{"id":49026,"post":124413,"parent":49024,"author":8504741,"author_name":"Marin Atanasov","author_url":"http:\/\/marinatanasov.com\/","date":"2026-07-08T12:07:10","date_gmt":"2026-07-08T12:07:10","content":{"rendered":"<p>Sharing a perspective of what is likely not a complete list, but still helpful to see the areas with gaps and issues. Some of those are being worked on today in <span tabindex=\"0\" class=\"glossary-item-container\">Core<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Core<\/span> <span class=\"glossary-item-description\">Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span>. Others have historically been solved through <span tabindex=\"0\" class=\"glossary-item-container\">plugin<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Plugin<\/span> <span class=\"glossary-item-description\">A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> alternatives, and a few of those could be worth considering for inclusion in Core in the future.<\/p>\n<h2>Inline rich-text formatting<\/h2>\n<ul>\n<li>Special characters \/ character map. Historic issues <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/8782\" rel=\"nofollow ugc\">#8782<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/1678\" rel=\"nofollow ugc\">#1678<\/a> closed as \u201ccompleted\u201d but only via plugins (<a href=\"https:\/\/wordpress.org\/plugins\/insert-special-characters\/\" rel=\"nofollow ugc\">example<\/a>), so practically still a gap in core.<\/li>\n<li>Custom \u201cFormats\u201d dropdown (TinyMCE <code>style_formats<\/code> \/ styleselect for plugins &amp; themes to register named styles) \u2013 no RichText equivalent. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/16007\" rel=\"nofollow ugc\">#16007<\/a>. (Closed history: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/8670\" rel=\"nofollow ugc\">#8670<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/4360\" rel=\"nofollow ugc\">#4360<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12123\" rel=\"nofollow ugc\">#12123<\/a>.)<\/li>\n<li>Clear formatting (one-click remove-all-inline) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/8869\" rel=\"nofollow ugc\">#8869<\/a> (also raised again later in <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/37632\" rel=\"nofollow ugc\">#37632<\/a>).<\/li>\n<li>Non-breaking space insertion + visibility of hidden chars. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/31401\" rel=\"nofollow ugc\">#31401<\/a>.<\/li>\n<li>Justified alignment \u2013 shipped (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/6833\" rel=\"nofollow ugc\">#6833<\/a>) but regressed recently: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79775\" rel=\"nofollow ugc\">#79775<\/a> (justify not preserved on re-edit \/ front end).<\/li>\n<li>Inline font-size \/ font-family \/ custom <code>&lt;span class&gt;<\/code> on a selection \u2013 TinyMCE allowed per-selection typography; blocks only offer <span tabindex=\"0\" class=\"glossary-item-container\">block<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Block<\/span> <span class=\"glossary-item-description\">Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span>-level typography. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/60684\" rel=\"nofollow ugc\">#60684<\/a> (inline span+class via toolbar).<\/li>\n<li>Inline text color \/ highlight (<code>&lt;mark&gt;<\/code>) \u2013 shipped, but edge cases remain. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/26386\" rel=\"nofollow ugc\">#26386<\/a> (inline color shows when disabled), <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/73052\" rel=\"nofollow ugc\">#73052<\/a> (highlight lost on paste-styles).<\/li>\n<li>Paste from Word \/ Excel \/ external. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/71081\" rel=\"nofollow ugc\">#71081<\/a> (Word omits images), <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/42570\" rel=\"nofollow ugc\">#42570<\/a> (Excel no longer builds a table), <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/18381\" rel=\"nofollow ugc\">#18381<\/a> (retain <span tabindex=\"0\" class=\"glossary-item-container\">CSS<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CSS<\/span> <span class=\"glossary-item-description\">Cascading Style Sheets.<\/span><\/span><\/span> on paste). \u201cPaste as Text\u201d button: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/6132\" rel=\"nofollow ugc\">#6132<\/a> (closed as not planned).<\/li>\n<li>Inline images inside rich text (select, resize, link, keeping attributes) \u2013 Open umbrella <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/28813\" rel=\"nofollow ugc\">#28813<\/a>; <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/72949\" rel=\"nofollow ugc\">#72949<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/38490\" rel=\"nofollow ugc\">#38490<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/41800\" rel=\"nofollow ugc\">#41800<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/7764\" rel=\"nofollow ugc\">#7764<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/64031\" rel=\"nofollow ugc\">#64031<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/38184\" rel=\"nofollow ugc\">#38184<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/62993\" rel=\"nofollow ugc\">#62993<\/a>.<\/li>\n<\/ul>\n<h2>Tables<\/h2>\n<ul>\n<li>Tracking: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/32400\" rel=\"nofollow ugc\">#32400<\/a> \/ <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/32394\" rel=\"nofollow ugc\">#32394<\/a>.<\/li>\n<li>Merge \/ unmerge cells (colspan\/rowspan) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/15821\" rel=\"nofollow ugc\">#15821<\/a>.<\/li>\n<li>Select a range of cells \/ whole rows \/ columns \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12115\" rel=\"nofollow ugc\">#12115<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/16294\" rel=\"nofollow ugc\">#16294<\/a>.<\/li>\n<li>Cut\/copy\/paste cells within a table \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12116\" rel=\"nofollow ugc\">#12116<\/a>.<\/li>\n<li>Per-cell \/ per-row \/ per-column background color \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/18766\" rel=\"nofollow ugc\">#18766<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/31261\" rel=\"nofollow ugc\">#31261<\/a>.<\/li>\n<li>Adjustable column widths \/ row heights (fixed layout forces 100%) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/42575\" rel=\"nofollow ugc\">#42575<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12294\" rel=\"nofollow ugc\">#12294<\/a>.<\/li>\n<li>Caption \/ figcaption gaps &amp; pasted-caption loss \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/41502\" rel=\"nofollow ugc\">#41502<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/30876\" rel=\"nofollow ugc\">#30876<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/61261\" rel=\"nofollow ugc\">#61261<\/a>.<\/li>\n<li>Pasting tables loses structure (Sheets\/Word) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/29833\" rel=\"nofollow ugc\">#29833<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/30876\" rel=\"nofollow ugc\">#30876<\/a>.<\/li>\n<li>Row\/column insertion <span tabindex=\"0\" class=\"glossary-item-container\">UX<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">UX<\/span> <span class=\"glossary-item-description\">User experience<\/span><\/span><\/span> + unclickable actions <span tabindex=\"0\" class=\"glossary-item-container\">bug<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">bug<\/span> <span class=\"glossary-item-description\">A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.<\/span><\/span><\/span> \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/49275\" rel=\"nofollow ugc\">#49275<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/28714\" rel=\"nofollow ugc\">#28714<\/a>.<\/li>\n<li>Rich content inside cells (InnerBlocks) \/ more tooling \/ list styling \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/57278\" rel=\"nofollow ugc\">#57278<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/35764\" rel=\"nofollow ugc\">#35764<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/18768\" rel=\"nofollow ugc\">#18768<\/a>.<\/li>\n<\/ul>\n<h2>Media, galleries &amp; embeds<\/h2>\n<ul>\n<li>Media Library modal is more limited (missing Mine\/Uploaded-to-this-post\/Unattached filters; folders; in-place replace keeping <span tabindex=\"0\" class=\"glossary-item-container\">URL<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">URL<\/span> <span class=\"glossary-item-description\">A specific web address of a website or web page on the Internet, such as a website\u2019s URL www.wordpress.org<\/span><\/span><\/span>) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/19851\" rel=\"nofollow ugc\">#19851<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/22005\" rel=\"nofollow ugc\">#22005<\/a>, with <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/73085\" rel=\"nofollow ugc\">#73085<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79779\" rel=\"nofollow ugc\">#79779<\/a> being worked on.<\/li>\n<li>Left\/right float + text-wrap alignment \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/21836\" rel=\"nofollow ugc\">#21836<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/62840\" rel=\"nofollow ugc\">#62840<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/62993\" rel=\"nofollow ugc\">#62993<\/a>.<\/li>\n<li>Dynamic <code>[gallery]<\/code> of post-attached media (no IDs) \u2013 aimed to be part of 7.1 \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/76955\" rel=\"nofollow ugc\">#76955<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/77117\" rel=\"nofollow ugc\">#77117<\/a>.<\/li>\n<li>Embed parameter control \/ styling inconsistencies (YouTube params; Classic-vs-block embed styling; bare image URL to wrong block) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/9678\" rel=\"nofollow ugc\">#9678<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/35384\" rel=\"nofollow ugc\">#35384<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/67859\" rel=\"nofollow ugc\">#67859<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/74734\" rel=\"nofollow ugc\">#74734<\/a>.<\/li>\n<\/ul>\n<h2>Shortcodes<\/h2>\n<ul>\n<li>Inline shortcodes can\u2019t stay inline, forced into a separate <span tabindex=\"0\" class=\"glossary-item-container\">Shortcode<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Shortcode<\/span> <span class=\"glossary-item-description\">A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.<\/span><\/span><\/span> block on conversion\/insert. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/60564\" rel=\"nofollow ugc\">#60564<\/a>.<\/li>\n<li>Unwanted <code>wpautop<\/code>\/<code>&lt;p&gt;<\/code>\/<code>&lt;br&gt;<\/code> injection around shortcode output \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/43748\" rel=\"nofollow ugc\">#43748<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/54136\" rel=\"nofollow ugc\">#54136<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/56617\" rel=\"nofollow ugc\">#56617<\/a>.<\/li>\n<li>Escaping \/ texturize divergence (<code>[[shortcode]]<\/code>, <code>no_texturize_shortcodes<\/code>) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/49357\" rel=\"nofollow ugc\">#49357<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/37754\" rel=\"nofollow ugc\">#37754<\/a>.<\/li>\n<li>Missing transforms \/ typing detection \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/13679\" rel=\"nofollow ugc\">#13679<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/78232\" rel=\"nofollow ugc\">#78232<\/a>.<\/li>\n<\/ul>\n<h2>Raw <span tabindex=\"0\" class=\"glossary-item-container\">HTML<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">HTML<\/span> <span class=\"glossary-item-description\">HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span> &amp; content integrity<\/h2>\n<ul>\n<li>Custom HTML block strips\/mangles\/loses content the Classic Text tab preserved \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/78576\" rel=\"nofollow ugc\">#78576<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79316\" rel=\"nofollow ugc\">#79316<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79022\" rel=\"nofollow ugc\">#79022<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/50173\" rel=\"nofollow ugc\">#50173<\/a> (some are recent WP7 regressions).<\/li>\n<li>Block-validation (\u201cunexpected or <span tabindex=\"0\" class=\"glossary-item-container\">invalid<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">invalid<\/span> <span class=\"glossary-item-description\">A resolution on the bug tracker (and generally common in software development, sometimes also <em>notabug<\/em>) that indicates the ticket is not a bug, is a support request, or is generally invalid.<\/span><\/span><\/span> content\u201d) to content loss on markup Classic tolerated \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/49773\" rel=\"nofollow ugc\">#49773<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/49095\" rel=\"nofollow ugc\">#49095<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/76526\" rel=\"nofollow ugc\">#76526<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/21703\" rel=\"nofollow ugc\">#21703<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/25436\" rel=\"nofollow ugc\">#25436<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/23396\" rel=\"nofollow ugc\">#23396<\/a>.<\/li>\n<li>Users without <code>unfiltered_html<\/code> (KSES) lose markup Classic authors kept (<span tabindex=\"0\" class=\"glossary-item-container\">multisite<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">multisite<\/span> <span class=\"glossary-item-description\">Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also <strong>network<\/strong>, <strong>blog<\/strong>, <strong>site<\/strong><\/span><\/span><\/span>\/editors) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/50050\" rel=\"nofollow ugc\">#50050<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/15137\" rel=\"nofollow ugc\">#15137<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/20490\" rel=\"nofollow ugc\">#20490<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/77787\" rel=\"nofollow ugc\">#77787<\/a>; Custom HTML preview ignores <span tabindex=\"0\" class=\"glossary-item-container\">capability<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">capability<\/span> <span class=\"glossary-item-description\">A\u00a0<strong>capability<\/strong>\u00a0is permission to perform one or more types of task. Checking if a user has a capability is performed by the <code>current_user_can<\/code> function. Each user of a WordPress site might have some permissions but not others, depending on their\u00a0role. For example, users who have the Author role usually have permission to edit their own posts (the \u201cedit_posts\u201d capability), but not permission to edit other users\u2019 posts (the \u201cedit_others_posts\u201d capability).<\/span><\/span><\/span> <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/38212\" rel=\"nofollow ugc\">#38212<\/a>. (Many in that bucket were previously closed, for example <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/41087\" rel=\"nofollow ugc\">#41087<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/76472\" rel=\"nofollow ugc\">#76472<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/74691\" rel=\"nofollow ugc\">#74691<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/7706\" rel=\"nofollow ugc\">#7706<\/a>.)<\/li>\n<li>Classic block considered misrendering as Custom HTML in Site Editor \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/50358\" rel=\"nofollow ugc\">#50358<\/a>.<\/li>\n<\/ul>\n<h2><span tabindex=\"0\" class=\"glossary-item-container\">Migration<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Migration<\/span> <span class=\"glossary-item-description\">Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.<\/span><\/span><\/span> \/ Convert-to-Blocks<\/h2>\n<ul>\n<li>No server-side \/ <span tabindex=\"0\" class=\"glossary-item-container\">PHP<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">PHP<\/span> <span class=\"glossary-item-description\">The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span> \/ bulk conversion \u2013 transforms are browser-<span tabindex=\"0\" class=\"glossary-item-container\">JS<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">JS<\/span> <span class=\"glossary-item-description\">JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.<\/span><\/span><\/span>-only. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/13163\" rel=\"nofollow ugc\">#13163<\/a>.<\/li>\n<li>No auto-convert of freeform on open \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/44054\" rel=\"nofollow ugc\">#44054<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/64129\" rel=\"nofollow ugc\">#64129<\/a> (tracking).<\/li>\n<li>Converting shortcodes to blocks not behaving as expected. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/43889\" rel=\"nofollow ugc\">#43889<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/8937\" rel=\"nofollow ugc\">#8937<\/a><\/li>\n<li>Conversion loses\/corrupts formatting (heading alignment, image size, captions, <code>&lt;cite&gt;<\/code>, classes, scripts\/styles) \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/8228\" rel=\"nofollow ugc\">#8228<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/32751\" rel=\"nofollow ugc\">#32751<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/15134\" rel=\"nofollow ugc\">#15134<\/a>; a bunch more were historically closed <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/35049\" rel=\"nofollow ugc\">#35049<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/35050\" rel=\"nofollow ugc\">#35050<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/42172\" rel=\"nofollow ugc\">#42172<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12311\" rel=\"nofollow ugc\">#12311<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/12310\" rel=\"nofollow ugc\">#12310<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/4215\" rel=\"nofollow ugc\">#4215<\/a>.<\/li>\n<li>Conversion blocked by <code>allowed_block_types_all<\/code> \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/66620\" rel=\"nofollow ugc\">#66620<\/a>.<\/li>\n<li>Related: 10up\u2019s convert-to-blocks (<a href=\"https:\/\/github.com\/10up\/convert-to-blocks\" rel=\"nofollow ugc\">https:\/\/github.com\/10up\/convert-to-blocks<\/a>) offered up for iteration and consideration.<\/li>\n<\/ul>\n<h2><span tabindex=\"0\" class=\"glossary-item-container\">Meta<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Meta<\/span> <span class=\"glossary-item-description\">Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.<\/span><\/span><\/span> boxes, custom fields, <code>wp_editor()<\/code> &amp; TinyMCE <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span><\/h2>\n<ul>\n<li><code>wp_editor()<\/code> \/ TinyMCE inside meta boxes fails to init or save \u2013 worked in Classic. Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/74627\" rel=\"nofollow ugc\">#74627<\/a>.<\/li>\n<li>No supported <code>wp_editor()<\/code> equivalent to render a rich editor elsewhere (front-end forms, custom <span tabindex=\"0\" class=\"glossary-item-container\">admin<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">admin<\/span> <span class=\"glossary-item-description\">(and super admin)<\/span><\/span><\/span> <span tabindex=\"0\" class=\"glossary-item-container\">UI<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">UI<\/span> <span class=\"glossary-item-description\">User interface<\/span><\/span><\/span>); canonical Lite-Editor block <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/73475\" rel=\"nofollow ugc\">#73475<\/a>. <code>wp.oldEditor<\/code> is an undocumented partial shim. <\/li>\n<li>Meta boxes are second-class \/ restricted \/ drag-broken \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/59246\" rel=\"nofollow ugc\">#59246<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/17432\" rel=\"nofollow ugc\">#17432<\/a> (many closed: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/63882\" rel=\"nofollow ugc\">#63882<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/38062\" rel=\"nofollow ugc\">#38062<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/3151\" rel=\"nofollow ugc\">#3151<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/3304\" rel=\"nofollow ugc\">#3304<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/952\" rel=\"nofollow ugc\">#952<\/a>).<\/li>\n<li>Native Custom Fields panel conflicts with post-meta editing (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/23078\" rel=\"nofollow ugc\">#23078<\/a>).<\/li>\n<\/ul>\n<h2>Editor UX &amp; writing environment<\/h2>\n<ul>\n<li>Find &amp; Replace \u2013 a genuine, frequently-expected feature with no canonical open issue; previously available with TinyMCE Advanced; the prior request <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/21886\" rel=\"nofollow ugc\">#21886<\/a> (Search &amp; Replace in <span tabindex=\"0\" class=\"glossary-item-container\">Gutenberg<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Gutenberg<\/span> <span class=\"glossary-item-description\">The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.<br \/>\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span>) was closed\/declined. Command Palette (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/51504\" rel=\"nofollow ugc\">#51504<\/a>) is the nearest direction, especially with the workflows API (<a href=\"https:\/\/github.com\/wordpress\/gutenberg\/issues\/70710\" rel=\"nofollow ugc\">#70710<\/a>).<\/li>\n<li>Fullscreen-by-default = <span tabindex=\"0\" class=\"glossary-item-container\">WCAG<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">WCAG<\/span> <span class=\"glossary-item-description\">WCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) <a href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">https:\/\/www.w3.org\/TR\/WCAG21\/<\/a>.<\/span><\/span><\/span> concern \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/47112\" rel=\"nofollow ugc\">#47112<\/a>. Largely addressed for 7.1 by the Omnibar effort in <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79036\" rel=\"nofollow ugc\">#79036.<\/a><\/li>\n<li>Autosave \/ draft-restore reliability, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/16053\" rel=\"nofollow ugc\">#16053<\/a>.<\/li>\n<li><span tabindex=\"0\" class=\"glossary-item-container\">Revisions<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Revisions<\/span> <span class=\"glossary-item-description\">The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next\/Previous buttons). The display indicates what has changed in each revision.<\/span><\/span><\/span> \u2013 in-editor Visual Revisions work still in flight; there is still the option to fall back to classic screen \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/61161\" rel=\"nofollow ugc\">#61161<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/77349\" rel=\"nofollow ugc\">#77349<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/77530\" rel=\"nofollow ugc\">#77530<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/77841\" rel=\"nofollow ugc\">#77841<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/76689\" rel=\"nofollow ugc\">#76689<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/46130\" rel=\"nofollow ugc\">#46130<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/60394\" rel=\"nofollow ugc\">#60394<\/a>.<\/li>\n<li>Writing-flow ergonomics across block boundaries \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/53674\" rel=\"nofollow ugc\">#53674<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/9880\" rel=\"nofollow ugc\">#9880<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/9723\" rel=\"nofollow ugc\">#9723<\/a>.<\/li>\n<li>Paragraph indentation \u2013 only first-line text-indent shipped (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/37462\" rel=\"nofollow ugc\">#37462<\/a>); full-paragraph indent only via padding\/margin and only when the theme opts into Dimensions.<\/li>\n<\/ul>\n<h2><span tabindex=\"0\" class=\"glossary-item-container\">Accessibility<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Accessibility<\/span> <span class=\"glossary-item-description\">Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility)<\/span><\/span><\/span><\/h2>\n<ul>\n<li>Toolbar buttons focus behavior \u2013 Open: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/6336\" rel=\"nofollow ugc\">#6336<\/a>.<\/li>\n<li><span tabindex=\"0\" class=\"glossary-item-container\">iframe<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">iframe<\/span> <span class=\"glossary-item-description\">iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and\/or CSS which is loaded at the time when iframe tag is parsed by the user\u2019s browser.<\/span><\/span><\/span> screen-reader verbosity \u2013 distraction free <span tabindex=\"0\" class=\"glossary-item-container\">a11y<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Accessibility<\/span> <span class=\"glossary-item-description\">Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility)<\/span><\/span><\/span> <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/49479\" rel=\"nofollow ugc\">#49479<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/63614\" rel=\"nofollow ugc\">#63614<\/a>, table a11y <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/24205\" rel=\"nofollow ugc\">#24205<\/a>\/<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/72490\" rel=\"nofollow ugc\">#72490<\/a>.<\/li>\n<\/ul>\n<p>On what\u2019s next for learning: I appreciate hearing from folks who still rely on the Classic experience so we can find out more about the specific need, workflow, or frustration behind it. <\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49026","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8504741"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49024"}]}},{"id":49025,"post":124413,"parent":49024,"author":147990,"author_name":"leemon","author_url":"https:\/\/github.com\/mrleemon","date":"2026-07-08T10:56:36","date_gmt":"2026-07-08T10:56:36","content":{"rendered":"<p>I still prefer using the classic <span tabindex=\"0\" class=\"glossary-item-container\">block<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Block<\/span> <span class=\"glossary-item-description\">Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> for some specific tables, as the table block remains limited (no blocks inside cells, no cell merging or splitting, missing individual cell and row styling, etc.), compared to the table feature found in the Advanced Editor Tools <span tabindex=\"0\" class=\"glossary-item-container\">plugin<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Plugin<\/span> <span class=\"glossary-item-description\">A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span>.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49025","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/147990"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49024"}]}},{"id":49024,"post":124413,"parent":0,"author":1,"author_name":"Matt Mullenweg","author_url":"http:\/\/ma.tt\/","date":"2026-07-08T02:32:02","date_gmt":"2026-07-08T02:32:02","content":{"rendered":"<p>\u201cUnderstanding more in-depth why users still rely on Classic and bridging those gaps\u201d<\/p>\n<p>I\u2019d love to hear more here. What do we know so far, and what is next for learning?<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49024","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/33252cd1f33526af53580fcb1736172f06e6716f32afdd1be19ec3096d15dea5?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/33252cd1f33526af53580fcb1736172f06e6716f32afdd1be19ec3096d15dea5?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/33252cd1f33526af53580fcb1736172f06e6716f32afdd1be19ec3096d15dea5?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/1"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49024"}]}},{"id":49023,"post":124413,"parent":49018,"author":17019909,"author_name":"thomasprice61","author_url":"","date":"2026-07-07T23:37:38","date_gmt":"2026-07-07T23:37:38","content":{"rendered":"<p>Yes please\u2026 <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/73475\" rel=\"nofollow ugc\">https:\/\/github.com\/WordPress\/gutenberg\/issues\/73475<\/a><\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49023","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/a5c33bb9a116300d461beff09d3e2734418f3a7284c38d2a44058c2acba16551?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/a5c33bb9a116300d461beff09d3e2734418f3a7284c38d2a44058c2acba16551?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/a5c33bb9a116300d461beff09d3e2734418f3a7284c38d2a44058c2acba16551?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/17019909"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49018"}]}},{"id":49022,"post":124141,"parent":49009,"author":5276180,"author_name":"Torsten Landsiedel","author_url":"https:\/\/torstenlandsiedel.de","date":"2026-07-07T18:54:07","date_gmt":"2026-07-07T18:54:07","content":{"rendered":"<p>\ud83e\udd73<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/06\/23\/hiding-the-classic-block-from-the-inserter-in-wordpress-7-1\/#comment-49022","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/85b3ccf3d505b40e64c56ee29c72bfa9f166468c4998288edcb561b53c804c64?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/85b3ccf3d505b40e64c56ee29c72bfa9f166468c4998288edcb561b53c804c64?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/85b3ccf3d505b40e64c56ee29c72bfa9f166468c4998288edcb561b53c804c64?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/5276180"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124141"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49009"}]}},{"id":49021,"post":124315,"parent":49006,"author":15687775,"author_name":"Jorge Costa","author_url":"","date":"2026-07-07T18:07:22","date_gmt":"2026-07-07T18:07:22","content":{"rendered":"<p>Hi <a href=\"https:\/\/profiles.wordpress.org\/justlevine\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>justlevine<\/a>, thanks for the thoughtful and detailed feedback. You\u2019ve raised several things worth digging into, and I\u2019ll do my best to address the main points below.<\/p>\n<p>Regarding testing, I agree the abilities need careful review before landing. My view is that the current work is not starting from zero. One of the abilities was previously in <span tabindex=\"0\" class=\"glossary-item-container\">Core<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Core<\/span> <span class=\"glossary-item-description\">Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> <span tabindex=\"0\" class=\"glossary-item-container\">trunk<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">trunk<\/span> <span class=\"glossary-item-description\">A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running \"trunk\", then you are on the latest revision.<\/span><\/span><\/span>, and the content ability builds on earlier work from February, with different names but similar principles. If these are included for <span tabindex=\"0\" class=\"glossary-item-container\">beta<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Beta<\/span> <span class=\"glossary-item-description\">A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span>, we would still have the beta period to address concrete bugs\/issues before release.<\/p>\n<p>Regarding naming, after checking AI tooling names and ability names in plugins in the wild, <a href=\"https:\/\/profiles.wordpress.org\/gziolo\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>gziolo<\/a> and I initially opted for pairs like (core\/content, core\/manage-content). During the review process, it was suggested that including a verb on the read version may help LLMs, and that\u2019s where the read name originated. For me, read-content is more natural than get-content, as in conversation we say we will \u201cread\u201d a post rather than \u201cget\u201d a post. But we don\u2019t have a specific reason; I think both get and read would work well. If you have a reason for get, please share it and we can discuss it.<\/p>\n<p>Regarding existing abilities like core\/get-user-info, repurposing it as a general ability would make its name inconsistent with the others even if we use get. E.g., if we went with core\/get-settings, the retrieval of the users list should be core\/get-users. core\/get-user-info was meant to retrieve the current user, and being singular it would not fit our list-users ability. For now, the plan is to keep it as the ability that provides basic information about only the logged-in user.<\/p>\n<p>Regarding similarities with REST, that\u2019s expected, as many of the operations done in one and the other, like permission checks, are identical. The current shapes are intentionally minimal: they don\u2019t offer advanced features, and the properties being shared are the minimal version of an entity, so later we can discuss the shape for more advanced features in depth.<\/p>\n<p>Regarding maintainer availability, <a href=\"https:\/\/profiles.wordpress.org\/gziolo\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>gziolo<\/a> is also involved in this work, reviewing it and committing changes.<\/p>\n<p>Stepping back from the specifics for a moment: the Abilities <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> landed in core with the premise that it\u2019s \u201ca first-class, cross-context functional API that other tools and applications can use to interface with WordPress.\u201d Settings, users, and posts are about as basic as WordPress gets, so my starting point is that core should have abilities to read (and write) them. Does that framing work for you, or do you see it differently?<\/p>\n<p>If that framing works, the main thing I\u2019d like to pin down is whether there are concrete issues in the current abilities we couldn\u2019t fix on time before the beta release. If there are concrete blockers, I\u2019d really like to surface them now so we can address them clearly. One concern I have with waiting for 7.2 is that we could hit some of the same concerns again (there will always be some overlap with REST, for example). My preference would be to keep the scope small and read-only and lean on beta and wider testing to catch possible bugs, provided there are no fundamental problems in the current approach.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/02\/merge-proposal-expanding-wordpress-core-abilities\/#comment-49021","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d5bebe65a302020ad03fc720d285907ee3914b5478093900e0daf0d2cc4cd24c?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d5bebe65a302020ad03fc720d285907ee3914b5478093900e0daf0d2cc4cd24c?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d5bebe65a302020ad03fc720d285907ee3914b5478093900e0daf0d2cc4cd24c?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/15687775"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124315"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49006"}]}},{"id":49019,"post":124413,"parent":0,"author":5645739,"author_name":"Jeffrey Paul","author_url":"https:\/\/jeffpaul.com\/","date":"2026-07-07T16:32:19","date_gmt":"2026-07-07T16:32:19","content":{"rendered":"<p>I\u2019d be happy to see <a href=\"https:\/\/github.com\/10up\/convert-to-blocks\" rel=\"nofollow ugc\">https:\/\/github.com\/10up\/convert-to-blocks<\/a> iterated on if it would be a helpful tool here as part of the \u201cWhere the effort goes next\u201d effort.  Just let me know if there\u2019s something that would be most of use so I can try and get that prioritized and done\u2026 thanks!<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49019","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/c95de1e6c222121175c2c0dddf4631d2ea45704938f53332d12710379c6153e6?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/c95de1e6c222121175c2c0dddf4631d2ea45704938f53332d12710379c6153e6?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/c95de1e6c222121175c2c0dddf4631d2ea45704938f53332d12710379c6153e6?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/5645739"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}]}},{"id":49018,"post":124413,"parent":0,"author":23480019,"author_name":"andyhenderson2","author_url":"https:\/\/seeita.com","date":"2026-07-07T16:10:11","date_gmt":"2026-07-07T16:10:11","content":{"rendered":"<p>Some of the sites I look after use the wp_editor function to invoke the Tiny MCE editor allowing rich text to be entered as part of a front-end form. This is a valuable feature. I\u2019ve looked from time to time for a replacement for wp_editor but all I\u2019ve found is an early, unofficial work-around that was very complex to implement. It looks like the current move is to make the WP editor more forms oriented but it\u2019s a long way from implementing the functionality we get from <span tabindex=\"0\" class=\"glossary-item-container\">PHP<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">PHP<\/span> <span class=\"glossary-item-description\">The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span> and <span tabindex=\"0\" class=\"glossary-item-container\">Javascript<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">JavaScript<\/span> <span class=\"glossary-item-description\">JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user\u2019s browser.<br \/>\n<a href=\"https:\/\/www.javascript.com\/\">https:\/\/www.javascript.com<\/a><\/span><\/span><\/span> to simplify data entry while keeping the look and feel of the rest of the site.<\/p>\n<p>It would be good to see a blocks equivalent of wp_editor in the pipeline.<\/p>\n<p>Andy<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49018","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/5457c0a50f3b2950ac5e7d85eb164ef3b45f3cd5b360b5943e40ca6ac6b57d6d?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/5457c0a50f3b2950ac5e7d85eb164ef3b45f3cd5b360b5943e40ca6ac6b57d6d?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/5457c0a50f3b2950ac5e7d85eb164ef3b45f3cd5b360b5943e40ca6ac6b57d6d?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/23480019"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49018"}]}},{"id":49017,"post":124413,"parent":49016,"author":8504741,"author_name":"Marin Atanasov","author_url":"http:\/\/marinatanasov.com\/","date":"2026-07-07T08:38:07","date_gmt":"2026-07-07T08:38:07","content":{"rendered":"<p>Good reminder, <a href=\"https:\/\/profiles.wordpress.org\/swissspidy\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>swissspidy<\/a>. I\u2019ve rephrased the post.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/07\/07\/the-classic-block-stays-in-the-inserter-for-wordpress-7-1\/#comment-49017","status":"approved","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/774c1731d3e408331d6254fe7c5add84e6172385909ed73bd6a6922dc7b81d76?s=96&d=mm&r=g"},"meta":{"_wp_note_status":null},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8504741"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124413"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49016"}]}}]