How the WordPress Notes feature keeps feedback in the editor

I got a call from a client running a big content operation, and their editorial workflow was a mess. Writers drafted in Google Docs, editors left feedback in Asana, and the project manager tried to hold it together in Slack. Feedback kept getting lost and the wrong versions kept going live. What they really wanted was to keep all that conversation inside WordPress, right where the content lives. The new Notes feature in WordPress 6.9 is more or less built for that.

My first thought was, “Okay, which third-party commenting plugin are we going to use?” That’s usually a trap. It means another dependency, another potential security hole, and you end up at the mercy of the plugin developer. Then I read the dev notes for the latest WordPress release, and there it was. They built the solution right into core.

How the WordPress Notes feature actually works

Here’s the interesting part: under the hood, a “Note” is just a WP_Comment with a comment type of note. That’s it. All the mature, stable code for handling comments is already there, so we can query for notes the same way we query regular comments. Reusing an existing API beats bolting on something new.

<?php
// This is all you need to get all unresolved notes for a post
$notes = get_comments( 
	array(
		'post_id' => $post_id,
		'type'    => 'note',
        'status'  => 'hold' // 'hold' means unresolved
	)
);

The first thing my client asked was if we could get it working on their “Webinar” custom post type. Piece of cake. Since we controlled the CPT registration, we just had to tell it to support editor notes.

<?php
register_post_type( 'bbioon_webinar', array(
	'label' => 'Webinars',
	'public' => true,
	'show_in_rest' => true,
	'supports' => array(
		'title',
		'editor' => array( 'notes' => true ), // Right here, man.
		'author',
	),
) );

If you’re dealing with a CPT from a third-party plugin, you have to use add_post_type_support() instead, which is a bit more verbose for now. The official dev note on the feature, which I found on make.wordpress.org, goes into the nuances there. Worth a read if that’s your situation.

So, what’s the catch?

It’s not perfect yet. This is version one, and there are a few things to know before you roll it out to your team:

  • Notification spam: The post author gets an email for every single note. On a busy post, that fills up an inbox fast. I’m hoping for digest emails in a future release.
  • Block-level only: You can only attach a note to a whole block, like an entire paragraph. You can’t highlight a single sentence. That’s supposedly coming in WordPress 7.0.
  • Duplication issues: If you duplicate a block that has a note, both copies point to the same note, which gets confusing fast. It’s a known Gutenberg limitation they’re working on.

Even with those limitations, it’s a real step forward. It brings a big part of the editorial workflow into the editor itself, where it belongs.

This stuff gets complicated fast. If you’re tired of debugging someone else’s mess and just want your site to work, drop my team a line. We’ve probably seen it before.

author avatar
Ahmad Wael
I'm a WordPress and WooCommerce developer with 15+ years of experience building custom e-commerce solutions and plugins. I specialize in PHP development, following WordPress coding standards to deliver clean, maintainable code. Currently, I'm exploring AI and e-commerce by building multi-agent systems and SaaS products that integrate technologies like Google Gemini API with WordPress platforms, approaching every project with a commitment to performance, security, and exceptional user experience.