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
- WHEN
- Content contains "healthy"
- THEN
- No validation needed
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
- WHEN
- Title is not empty
- THEN
- Content is required
When Title is not empty, Content is required.
Severity
Blocking vs Warning
Severity controls what happens when a rule fails. Color reinforces the label—it never replaces it.
Blocking
BlockingA 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
WarningA 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.
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
- 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.
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.
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
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.