Features

Rules your WordPress content can actually follow.

ContentGuard is a WordPress content governance plugin: it turns the requirements behind your content model into enforceable rules, then checks that content before publication and during audits.


Rules

WHEN condition. THEN validation.

Every ContentGuard rule targets a post type and one or more WordPress Core or ACF fields. Conditions decide when the rule applies. Validations decide what must be true. Multiple WHEN conditions use AND logic in V1.

  • A rule without a WHEN condition applies to every post of the selected type.
  • Condition-only rules (WHEN without THEN) produce a finding when the condition matches—useful for prohibited terminology and other governance checks.
  • A rule needs at least a WHEN condition or a THEN validation.

Restricted terminology

Applies to: Posts

Blocking
WHEN
Content contains "healthy"
THEN
No validation needed
Rule preview

When Content contains "healthy", this rule blocks publishing.

Example of a user-defined condition-only rule—not a built-in dictionary.

Require body when titled

Applies to: Posts

Blocking
WHEN
Title is not empty
THEN
Content is required
Rule preview

When Title is not empty, Content is required.

Condition-only rule: WHEN Content contains “healthy”, Blocking — no THEN validation required.
Conditional validation: WHEN Title is not empty, THEN Content is required.

Severity

Blocking vs Warning

Severity controls what happens when a rule fails. Color reinforces the label—it never replaces it.

Blocking

Blocking

A blocking finding prevents publication or updates to published/private content until the issue is resolved.

ContentGuard · Blocking

Content — This content matches the rule condition.

Warning

Warning

A warning surfaces the issue in the editor but does not block the save. Warnings still matter in audits—they appear as content that needs review.

ContentGuard · Warning

Content — This content matches the rule condition.

Block editor: ContentGuard · Blocking when a required Content field is empty.
Classic Editor: ContentGuard · Warning surfaces the finding without blocking publication.

In V1, blocking applies to publish and private update flows. Drafts, autosaves, and revisions are not blocked—so editors can still save work in progress.


Fields

WordPress Core and ACF, with structure

Rules target the fields your content model already uses. ContentGuard understands nested and repeated field context rather than treating every value as one flat string.

WordPress Core

  • Title
  • Content
  • Excerpt
  • Slug
  • Featured Image
  • Author

ACF scalar fields

  • Text
  • Textarea
  • Number
  • Range
  • Email
  • URL
  • Password
  • WYSIWYG
  • Select (single)
  • Radio
  • Button Group
  • True / False
  • Date Picker
  • Date / Time Picker
  • Color Picker

ACF structures

  • Group
  • Repeater
  • Flexible Content
  • Clone

Nested Repeater

Repeater Repeater scalar

Maximum supported nesting is two Repeater levels. Deeper stacks and many relationship-style or media field types are outside V1.

Repeater finding with row context: Ingredient is required in row 3.

Conditions

Decide when a rule applies

WHEN conditions are literal and predictable. They are not search intelligence—and that is intentional.

  • equals Exact value match
  • not equals Value differs
  • empty Field has no value
  • not empty Field has a value
  • contains Literal substring
  • does not contain Substring absent
  • greater than Numeric comparison
  • greater than or equal Numeric comparison
  • less than Numeric comparison
  • less than or equal Numeric comparison

Contains & does not contain

  • Literal substring matching
  • Case-insensitive
  • Intended for string-like fields
  • No regex, wildcards, fuzzy matching, or AI interpretation
  • Empty search values are invalid
  • WHEN-only operators—not THEN validators

Numeric comparisons

Greater than / less than (and their or-equal variants) apply to number and range fields. Date fields support equals, not equals, empty, and not empty.

Repeated fields

WHEN conditions on Repeater and Flexible Content use any-row semantics: the condition matches if any applicable row meets it. THEN validations run on every applicable row/instance.


Validation

THEN requirements in V1

After a rule’s WHEN conditions are satisfied, ContentGuard evaluates the THEN validators against the applicable field value.

  • Required Field must have a value
  • Minimum length Character count floor
  • Maximum length Character count ceiling
  • Allowed values Value must be one of a set

Editors

Where ContentGuard enforces

Blocking and warning behavior is available on the supported WordPress save paths—not every possible editing interface.

Gutenberg

Core validation can block publication through WordPress REST responses, with ContentGuard feedback surfaced in the editor.

Classic Editor

ContentGuard provides blocking validation before publication/save and surfaces the relevant issues.

ACF

ACF-backed validation integrates with the editor’s ACF validation lifecycle on supported field types.

Classic Editor: ContentGuard · Blocking when content matches the rule condition.

Audit

Review what already exists

Audit evaluates existing published and private content against the same active rules. It reports findings—it does not change your content.

  • Published and private content
  • Progress for large sites processed in batches
  • Historical review of completed audit runs
  • Finding context with field and rule identity
  • Repeated/nested findings retain row context where applicable
Audit reports Blocking and Warning findings against active rules — it does not modify content.

Scope

What V1 intentionally does not do

ContentGuard is intentionally focused on a clear first problem: enforceable content rules inside WordPress.

  • Gutenberg as an ACF-style field integration
  • WooCommerce rule support
  • REST/GraphQL as a general rule-engine integration
  • AI-generated rules
  • SaaS / cloud governance
  • Arbitrary ACF nested structures beyond V1 support
  • Regex or fuzzy condition matching
  • Formulas or cross-field calculations
  • Cross-row logic

Requirements

What you need to run ContentGuard

  • WordPress6.6+
  • PHP8.1+
  • Advanced Custom Fields6.0+
  • ACF is required for ACF-backed rules.
  • ACF Pro is required for Repeater, Flexible Content, and Clone.
  • WordPress Core rules do not depend on ACF field types—but the plugin requires ACF to be installed.

Ready to define your rules?

Start with installation, then create your first WHEN / THEN rule in the Rule Builder.