Skip to content

Moderation and the Review Queue

New in 4.0.0. Member posts can be held for review before they go live, and reviewers approve or reject them from the WordPress Posts list.

Before 4.0.0, the “Publish immediately” setting did nothing. Turning it off was supposed to hold member posts for review. It did not. Every member of a member blog is given the WordPress author role so they can write at all, and author holds the publish_posts capability - which was the capability the check asked about. So the check said yes for everybody, and member posts went straight to the live site, unreviewed, on sites whose owners believed they had switched review on.

It now works. If your site had “Publish immediately” turned off, member posts that used to go live will now go to Pending Review from the moment you update. That is what the setting always claimed to do, but it is a visible change in behaviour and your members will notice it before you do. WordPress shows you a one-time notice about this after the update.

Two related fixes ship in the same release:

  • A post marked Private is now actually private. It was previously published publicly, which is the opposite of what the member asked for. Posts that were already published are not changed retroactively - if members have used the Private option, it is worth looking through them.
  • Editing your own published post no longer takes it off the site. With moderation on, correcting a typo used to send the post back to Pending and remove it from the site.

Go to Member Blog > Access, find the Post Publication Rules card, and untick Publish immediately.

Setting Result
Publish immediately, ticked (default) Member posts go live as soon as they are submitted.
Publish immediately, unticked Member posts enter Pending Review and must be approved.

Anyone with the edit_others_posts capability. That is editors and administrators on a standard WordPress site, and it is the same capability the plugin uses for featuring posts, so there is one notion of “editor” across the plugin.

Editors can also edit member posts. Before 4.0.0 only administrators could, which made review impossible on a site whose editors were not admins.

There is no separate moderation screen. WordPress already ships a list of pending posts that is paginated, searchable, sortable and safe at ten thousand rows, so the plugin adds its actions to that.

  1. Go to Posts in WordPress admin. A count badge on the Member Blog menu tells you how many posts are waiting.
  2. Click the Pending filter at the top of the list.
  3. Hover a row and use Approve or Reject.

The post is published immediately, and the plugin’s publish notifications fire - the author is told, and their followers are told.

Approving a post that has already been approved does nothing. Two reviewers with the same queue open in two tabs cannot publish it twice, re-date it, or mail the author’s followers a second time.

Reject sends the post back to the author as a draft. It is never trashed.

A rejected post is a piece of writing somebody spent an evening on, and the reviewer is saying “not yet”, not “destroy this”. The member finds it in their drafts, fixes it, and resubmits.

Select several posts and use the Bulk actions dropdown:

Action Effect
Approve Publishes every selected pending post
Reject (back to draft) Returns every selected pending post to its author as a draft

Both are for clearing a backlog. Only pending posts are affected; anything else in the selection is skipped.

By default, no. Moderation gates publication, not editing. Once a post has been reviewed and approved, its author can correct it, exactly as WordPress itself allows.

If you want edits to a published post to go back into the queue:

add_filter( 'bpmb_moderate_edits', '__return_true' );

The submission form offers “Private - Only visible to site editors and administrators”. A member who chooses it now gets a genuinely private post: they can read their own, other members cannot.

To remove the Private option entirely:

add_filter( 'bpmb_allow_private_posts', '__return_false' );
Hook Fires when
bpmb_post_approved A pending post is approved. Receives the post ID and the reviewer’s user ID.
bpmb_post_rejected A pending post is rejected and returned to draft. Same arguments.

Pro’s workflow notifications hang off these.