Descripziun
Effortless Required Fields Validator ensures content quality by requiring all users to complete essential fields before publishing posts. It works with both the block editor (Gutenberg) and the Classic Editor.
Required Fields
- Title – Post title must not be empty
- Content – Post content must not be empty
- Featured Image – A featured image must be set
- Category – At least one category must be selected (posts only)
Features
- Works for all users – Admins, Editors, Authors, and Contributors all have the same validation
- Dual editor support – Works with both the block editor (Gutenberg) and the Classic Editor
- Block editor: real-time validation – Publish button is disabled and a warning banner shows which fields are missing
- Classic Editor: server-side validation – An error message is shown if required fields are missing when you click Publish
- Multilingual ready – Fully translatable with included French translation
- Lightweight – Minimal performance impact
- Clean code – Follows WordPress coding standards
How It Works
In the block editor (Gutenberg):
- While editing a post, the plugin monitors all required fields in real time
- If any field is missing, the Publish button is automatically disabled
- A prominent warning banner shows exactly which fields are missing
- Once all required fields are filled, publishing is re-enabled
In the Classic Editor:
- Fill in your post as usual and click Publish
- If any required field is missing, an error page is shown with a list of missing fields
- Use the „Back to editing“ link to return to the post and complete the missing fields
- Once all required fields are filled, publishing succeeds
Server-side validation runs for both editors, so the check cannot be bypassed.
Use Cases
- Maintain consistent content quality across your site
- Ensure all posts have featured images for better social media sharing
- Enforce editorial standards for multi-author blogs
- Prevent incomplete posts from being published accidentally
- Improve SEO by requiring complete content
Translations
- English (default)
- French (Français) – included
- Translation ready – submit your translations!
Developer Notes
Filters Available
Currently, the plugin doesn’t provide filters for customization, but this may be added in future versions based on community feedback.
Translation
To translate this plugin:
- Use the provided
.potfile in the/languagesfolder - Create your translation using Poedit or similar tool
- For JavaScript translations, compile JSON files using WP-CLI:
wp i18n make-json languages/ –no-purge - Submit your translation to the plugin author
Support
For support, please use the WordPress.org support forums or visit the plugin’s GitHub repository (if available).
Privacy Policy
This plugin does not collect, store, or transmit any user data. It only validates post fields in the WordPress editor.
Credits
Developed by domclic with ❤️ for the WordPress community.
Installaziun
Automatic Installation
- Log in to your WordPress admin panel
- Go to Plugins > Add New
- Search for „Effortless Required Fields Validator“
- Click „Install Now“ and then „Activate“
Manual Installation
- Download the plugin ZIP file
- Log in to your WordPress admin panel
- Go to Plugins > Add New > Upload Plugin
- Choose the ZIP file and click „Install Now“
- Activate the plugin
After Activation
The plugin works immediately after activation. No configuration needed!
Simply try to publish a post without filling all required fields, and you’ll see the validation in action.
FAQ
-
Does this work with the Classic Editor?
-
Yes! The plugin includes validation for both Gutenberg and the Classic Editor.
-
Can I customize which fields are required?
-
Currently, the plugin requires Title, Content, Featured Image, and Category (for posts). Customization options may be added in future versions based on user feedback.
-
Does it work for custom post types?
-
Currently, the plugin only validates the ‚post‘ post type. Support for pages and custom post types may be added in future versions.
-
Can admins bypass the validation?
-
No. As of version 1.0.8, all users (including administrators) must complete all required fields before publishing. This ensures consistent content quality across your entire site.
-
Will this affect my existing posts?
-
No. The validation only applies when publishing new posts or updating existing ones. Your existing published posts remain unaffected.
-
Does it work with Gutenberg blocks?
-
Yes! The plugin is fully compatible with the Gutenberg block editor and all standard blocks.
-
What happens if I try to publish without required fields?
-
In Gutenberg, the Publish button will be disabled and a warning banner will show which fields are missing. In the Classic Editor, you’ll see an error message with a link to return to editing.
-
Is it translation ready?
-
Yes! The plugin is fully translatable and includes French translation. You can add your own translations using the provided .pot file.
-
Does it impact site performance?
-
No. The plugin only loads its assets on post edit screens and has minimal performance impact.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Effortless Required Fields Validator” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Effortless Required Fields Validator” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.4.7
- Security fix: Server-side validation was completely skipped for REST API requests, meaning the block editor’s „Publish“ action (and any other REST client) could publish posts missing required fields without hitting any server-side check. Added a
rest_pre_insert_postvalidation that enforces the same required fields for REST-submitted posts. - Fixed: Featured image and category validation relied on raw
$_POSTdata, which could incorrectly block programmatic post publishing (WP-CLI, cron, imports, other plugins) that doesn’t submit the classic editor’s form fields. The check is now scoped to genuine classic-editor form submissions, with a safe fallback for programmatic saves of existing posts.
1.4.6
- Fixed: Plugin description, short description, and readme corrected — Classic Editor support was always present but not mentioned; all references to „Gutenberg only“ removed
- Improved: „How It Works“ section now documents both block editor and Classic Editor behaviour separately
- Improved: Features section clarified to distinguish real-time (Gutenberg) vs server-side (Classic Editor) validation
- Fixed: Privacy Policy referred to „post/page fields“ — corrected to „post fields“ (pages are not validated)
1.4.5
- Update: Confirmed compatibility with WordPress 7.0.
1.4.4
- Update: Tested up to WordPress 7.0.
1.4.3
- Fixed: Scheduled posts now validated in Classic Editor — status
futurewas not being caught - Fixed: Content check in Gutenberg now strips block delimiters and HTML tags before testing for empty
- Fixed: Warning banner z-index raised to 100001 — no longer hidden behind Gutenberg modals
- Improved: Warning banner gets
max-width: 90vwand centered text for narrow viewports - Removed: Dead
erfv-missing-fieldsbody class no longer toggled in JS - Improved: Removed unnecessary
wp-edit-postscript dependency - Fixed: README
Post/pagecopy corrected toPostthroughout - Release date: May 13, 2026
1.4.2
- Fixed: Gutenberg publish blocking now uses
lockPostSaving/unlockPostSavingAPI — replaces CSS-only approach that could be bypassed - Fixed: Server-side category validation added to classic editor PHP filter (was only enforced client-side)
- Fixed: Warning banner styles moved from inline JS to CSS file
- Added:
ERFV_VERSIONconstant — replaces hardcoded version strings in asset enqueue calls - Fixed: README corrected to reflect that validation applies to posts only, not pages
- Release date: May 13, 2026
1.3.0
- Rewritten: JavaScript validation now uses
registerPluginwith React hooks (useSelect,useEffect) — eliminates subscribe loop - Improved: Warning banner rendered as a React portal component
- Improved: Gutenberg validation is fully client-side — removed REST API filters that caused false publish errors
- Improved: Simplified classic editor validation with cleaner function signature
- Fixed: Classic editor featured image detection on new posts via
$_POST['_thumbnail_id'] - Fixed: Quick edit and bulk edit no longer trigger validation
- Fixed:
wp_die()output sanitized withwp_kses(), back link useswp_get_referer() - Fixed: Removed unused CSS rules and assets
- Added:
Requires at leastandRequires PHPheaders in main plugin file - Release date: March 28, 2026
1.1.1
- Fixed: Server-side validation now works for pages in Gutenberg (added
rest_pre_insert_pagefilter) - Fixed: Featured image and category validation uses REST request payload instead of relying on unsaved post meta
- Fixed: Validation now falls back to stored post data when fields are not in the request payload
- Fixed: Publish status detection on updates to already-published posts
- Fixed: XSS risk in JavaScript warning banner (replaced innerHTML with safe DOM methods)
- Improved: Full WordPress Coding Standards (WPCS) compliance
- Improved: Yoda conditions, long array syntax, tab indentation, proper PHPDoc
- Updated: All translation files regenerated (POT, PO, MO, JSON) with correct line references
- Tested: Compatible with WordPress 6.9
- Release date: March 27, 2026
1.0.8
- Changed: All users (including admins) now have the same validation requirements
- Added: Proper text domain loading for better translation support
- Fixed: JavaScript translation support with JSON file generation instructions
- Improved: Code documentation and comments
- Improved: Emoji encoding in error messages
- Updated: Translation files (.pot and French .po)
- Release date: November 20, 2025
1.0.7
- Fixed all WordPress.org Plugin Check errors
- Fully standards-compliant i18n and security
- Release date: November 19, 2025
1.0.6
- Code cleanup and better validation
- Improved error handling
1.0.5
- Fixed role detection for Editor/Author/Contributor
- Better compatibility with different user roles
1.0.4
- Initial improvements and bug fixes
1.0.0
- Initial release