How the WordPress Notes Feature Solves Editorial Chaos

I got a call from a client running a huge content operation. Their editorial workflow was a complete disaster. They had writers in Google Docs, editors leaving feedback in Asana, and the project manager trying to glue it all together in Slack. He was tearing his hair out. Feedback was getting lost, the wrong versions were being published… a total mess. They were desperate for a way to keep all that conversation inside WordPress, right where the content actually lives. This new WordPress Notes feature in 6.9 is basically built for them.

Honestly, my first thought was, “Okay, which third-party commenting plugin are we going to use?” That’s usually a trap. It adds another dependency, another potential security hole, and you’re at the mercy of the plugin developer. But after a bit of digging, I saw the dev notes for the latest WordPress release. And that was it. They built the solution right into the core.

How the WordPress Notes Feature Actually Works

Here’s the kicker: under the hood, a “Note” is just a `WP_Comment` with a comment type of `note`. That’s it. It’s so simple and so smart. It means all the mature, stable code for handling comments is already there. We can query for notes just like we would for regular comments. Trust me on this, using existing APIs is always better than 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 over at make.wordpress.org, explains some of the nuances of that. It’s worth a read if you’re in that situation.

So, What’s the Catch?

Look, it’s not perfect. Not yet. This is version one, and there are a few things you need to be aware of before you roll it out for your team:

  • Notification Spam: The post author gets an email for every single note. For a busy post, that’s going to fill up an inbox fast. I’m hoping for digest emails in a future release.
  • Block-Level Only: You can only attach a note to an entire block (like a whole paragraph). You can’t highlight a specific sentence. That’s supposedly coming in WordPress 7.0.
  • Duplication Issues: If you duplicate a block that has a note, both blocks now point to the same note. That could get confusing. It’s a known limitation of Gutenberg they’re working on.

Even with those limitations, this is a huge step forward. It brings a critical part of the editorial workflow directly into the editor, where it belongs.

Look, 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.

Leave a Reply

Your email address will not be published. Required fields are marked *