Title: WYSIWYG Character Limit for ACF
Author: Code and core
Published: <strong>23 April 2025</strong>
Last modified: 3 September 2026

---

Search plugins

![](https://ps.w.org/wysiwyg-character-limit-for-acf/assets/banner-772x250.png?rev
=3279804)

![](https://ps.w.org/wysiwyg-character-limit-for-acf/assets/icon-256x256.png?rev
=3464144)

# WYSIWYG Character Limit for ACF

 By [Code and core](https://profiles.wordpress.org/codeandcore/)

[Download](https://downloads.wordpress.org/plugin/wysiwyg-character-limit-for-acf.5.0.2.zip)

 * [Details](https://en-gb.wordpress.org/plugins/wysiwyg-character-limit-for-acf/#description)
 * [Reviews](https://en-gb.wordpress.org/plugins/wysiwyg-character-limit-for-acf/#reviews)
 *  [Installation](https://en-gb.wordpress.org/plugins/wysiwyg-character-limit-for-acf/#installation)
 * [Development](https://en-gb.wordpress.org/plugins/wysiwyg-character-limit-for-acf/#developers)

 [Support](https://wordpress.org/support/plugin/wysiwyg-character-limit-for-acf/)

## Description

**WYSIWYG Character Limit for ACF** is a powerful, feature-rich WordPress plugin
that enables you to set **maximum character limits** for Advanced Custom Fields (
ACF) WYSIWYG editor fields. Perfect for maintaining content quality, SEO optimization,
and editorial consistency across your WordPress site.

#### Key Features

**Character Limiting & Counting:**

 * **Global Limit** – Set a site-wide default limit for all WYSIWYG fields
 * **Per-Field Limits** – Override global settings with custom limits for individual
   fields
 * **Limit Type** – Restrict content by either Character count or Word count
 * **Real-Time Counter** – Live count updates as you type
 * **Smart HTML Exclusion** – Counts only visible text, ignoring all HTML tags and
   formatting
 * **Space Counting Options** – Choose whether to include or exclude spaces from
   the count
 * **Ignore Shortcodes** – Optional setting to exclude shortcodes from the limit
   count

**Visual Feedback & Validation:**

 * **Color-Coded Counter** – Visual indicators showing normal, warning, and error
   states
 * **Customizable Colors** – Set your own colors for counter, warning, and error
   states
 * **Visual Progress Bar** – Display an optional progress bar below the counter
 * **Warning Messages** – Configurable messages when approaching the limit
 * **Error Messages** – Custom error messages when limit is exceeded
 * **Counter Position** – Place counter above or below the editor
 * **Server-Side Validation** – Prevents saving content that exceeds limits
 * **Hard Limit** – Option to prevent typing in the editor once the limit is reached
 * **Auto-truncate on Paste** – Automatically cuts off pasted text that exceeds 
   the limit

**Editor Compatibility:**

 * **TinyMCE Support** – Works seamlessly in Visual editor mode
 * **Text Mode Support** – Full functionality in HTML/Text editor mode
 * **Mode Switching** – Maintains accurate count when switching between Visual and
   Text modes
 * **ACF Extended Compatible** – Full support for ACF Extended features

**Advanced Field Support:**

 * **Flexible Content** – Works inside Flexible Content layouts
 * **Repeater Fields** – Full support for Repeater fields
 * **Group Fields** – Compatible with ACF Group fields
 * **Clone Fields** – Works with ACF Clone fields
 * **Dynamic Fields** – Handles dynamically loaded fields

**Performance & Optimization:**

 * **Lightweight Code** – Minimal impact on page load times
 * **Efficient Counting** – Optimized algorithm for large content
 * **Smart Initialization** – Multiple triggers ensure counters work with dynamic
   content
 * **No jQuery Conflicts** – Clean, conflict-free JavaScript

**User Experience:**

 * **Intuitive Settings Page** – Clean, modern admin interface with full customization
 * **Dashboard Statistics** – View usage metrics like “Configured Fields” and “Errors
   Prevented”
 * **Deactivation Feedback** – Collect valuable feedback when users deactivate the
   plugin
 * **Accessibility Friendly** – WCAG compliant with keyboard navigation
 * **Multisite Ready** – Works perfectly on WordPress multisite networks
 * **Multilingual Compatible** – Works with WPML, Polylang, and other translation
   plugins
 * **Developer Friendly** – Well-documented, clean code with hooks and filters

**How it works:**

 * The plugin automatically adds a character counter below every ACF WYSIWYG field.
 * The counter updates live as you type, whether you are in Visual or Text mode.
 * HTML tags are ignored in the count, so only the text that will be visible on 
   the front-end is counted.
 * If you exceed the limit, the counter turns red and saving is prevented until 
   you reduce the character count.
 * Works with dynamic fields, repeaters, flexible content, and ACF Extended.

**Why use this plugin?**

 * Maintain content standards for SEO, news, or editorial sites
 * Prevent editors from exceeding allowed content length
 * Ensure uniformity in banners, meta descriptions, and structured content
 * Save time on manual content checks
 * Improve user experience for your content team

#### Privacy & Data Collection

**Your Privacy Matters**

This plugin respects your privacy and operates with full transparency:

 * **No Automatic Data Collection** – The plugin does not collect or transmit any
   data without your explicit consent
 * **Opt-In Telemetry** – You can optionally enable anonymous usage tracking from
   Settings > ACF WYSIWYG Limit to help improve the plugin
 * **Deactivation Feedback** – When deactivating, you can choose to share feedback
   to help us improve. This is completely optional
 * **Encrypted Transmission** – All data sent (if you opt-in) is encrypted using
   AES-256-CBC encryption for security
 * **No Personal Content** – We never collect your post content, user passwords,
   or sensitive information
 * **What We Collect (Only if you opt-in)**:
    - Plugin version and settings
    - WordPress and PHP versions
    - Theme information
    - Site language and multisite status
    - Anonymous site URL (for duplicate detection only)

**Deactivation Feedback**

When you deactivate the plugin, a feedback modal appears asking for your reason.
This helps us improve the plugin:

 * **Completely Optional** – You can skip and deactivate immediately
 * **Contact Consent** – Check the consent box only if you want us to follow up 
   with support
 * **Your Choice** – Your name and email are only sent if you check the consent 
   checkbox
 * **Secure** – All feedback is encrypted before transmission

### License

This plugin is released under the **GPL v2 or later**. You are free to modify and
distribute it.

## Screenshots

[⌊Global Settings Panel – Configure global character limits and counter display 
options.⌉⌊Global Settings Panel – Configure global character limits and counter 
display options.⌉[

**Global Settings Panel** – Configure global character limits and counter display
options.

[⌊ACF Field Character Limit Setting – Set a character limit for individual WYSIWYG
fields.⌉⌊ACF Field Character Limit Setting – Set a character limit for individual
WYSIWYG fields.⌉[

**ACF Field Character Limit Setting** – Set a character limit for individual WYSIWYG
fields.

[⌊Character Counter – Normal State – Shows remaining characters within allowed limit.⌉⌊
Character Counter – Normal State – Shows remaining characters within allowed limit
.⌉[

**Character Counter – Normal State** – Shows remaining characters within allowed
limit.

[⌊Character Counter – Approaching Limit – Displays warning message when nearing 
the limit.⌉⌊Character Counter – Approaching Limit – Displays warning message when
nearing the limit.⌉[

**Character Counter – Approaching Limit** – Displays warning message when nearing
the limit.

[⌊Character Counter – Limit Exceeded – Shows error when character count goes over
the limit.⌉⌊Character Counter – Limit Exceeded – Shows error when character count
goes over the limit.⌉[

**Character Counter – Limit Exceeded** – Shows error when character count goes over
the limit.

[⌊Validation Error on Save – Prevents saving and displays error when strict validation
is enabled.⌉⌊Validation Error on Save – Prevents saving and displays error when 
strict validation is enabled.⌉[

**Validation Error on Save** – Prevents saving and displays error when strict validation
is enabled.

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/wysiwyg-character-limit-for-acf/`
 2. Activate the plugin via the **Plugins** menu in WordPress.
 3. Go to **Settings > ACF WYSIWYG Limit** to configure global settings and opt-in 
    preferences.
 4. To apply per-field limits, edit any ACF **WYSIWYG** field and set a **Character
    Limit** value.
 5. The character counter will appear automatically below each WYSIWYG field.

## FAQ

### Does this work with ACF Pro?

Yes, the plugin is fully compatible with **ACF Free & ACF Pro**.

### Does this work with Flexible Content and Repeater fields?

Yes, you can apply character limits inside **Repeater, Flexible Content, and Group
fields**.

### Does the counter count HTML tags?

**No.** As of version 2.0.2, the character counter **excludes all HTML tags** and
counts only the visible text, in both Visual and Text modes.

### Can I use this for Word Count instead?

Yes! As of version 5.0.0, you can choose the “Limit Type” in the settings to restrict
content by either characters or words.

### Is it compatible with ACF Extended and dynamic field loading?

Yes, the plugin supports ACF Extended and works with dynamically loaded fields.

### Can I customize the counter style?

You can override the `.char-counter` CSS class in your theme or custom CSS.

## Reviews

There are no reviews for this plugin.

## Contributors and Developers

“WYSIWYG Character Limit for ACF” is open source software. The following people 
have contributed to this plugin.

Contributors

 *   [ Code and core ](https://profiles.wordpress.org/codeandcore/)

“WYSIWYG Character Limit for ACF” has been translated into 2 locales. Thank you 
to [the translators](https://translate.wordpress.org/projects/wp-plugins/wysiwyg-character-limit-for-acf/contributors)
for their contributions.

[Translate “WYSIWYG Character Limit for ACF” into your language.](https://translate.wordpress.org/projects/wp-plugins/wysiwyg-character-limit-for-acf)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wysiwyg-character-limit-for-acf/),
check out the [SVN repository](https://plugins.svn.wordpress.org/wysiwyg-character-limit-for-acf/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/wysiwyg-character-limit-for-acf/)
by [RSS](https://plugins.trac.wordpress.org/log/wysiwyg-character-limit-for-acf/?limit=100&mode=stop_on_copy&format=rss).

## Change Log

#### 5.0.2 – 2026-09-03

 * Bug Fix: Fixed activation redirect to prevent interruption of bulk plugin activations
   and WP-CLI workflows.

#### 5.0.1 – 2026-08-25

 * Bug Fix: Fixed character counting logic where HTML entities (like &) were incorrectly
   counted as multiple characters.
 * Bug Fix: Fixed a UI bug where the inline TinyMCE link editing popup would unexpectedly
   close when clicking a link.
 * Bug Fix: Resolved an issue where setting the “Approaching Limit Percentage” to
   0 would default back to 90%.
 * Bug Fix: Fixed hard limit logic so the Enter key is correctly blocked when reaching
   the word limit.

#### 5.0.0 – 2026-06-03

 * New: Added Dashboard statistics showing “Configured Fields” and “Errors Prevented”.
 * New: Added “Limit Type” option to restrict by Words instead of just Characters.
 * New: Added visual Progress Bar option below the counter.
 * New: Added “Hard Limit” feature to prevent typing in the editor once the limit
   is reached.
 * New: Added “Auto-truncate on Paste” to automatically cut off pasted text that
   exceeds the limit.
 * New: Added option to ignore shortcodes from the character/word count.
 * Security Fix: Removed hardcoded symmetric encryption key and improved telemetry
   payload security.
 * Bug Fix: Resolved potential “Headers already sent” fatal error during tracking
   opt-in routing.
 * Enhancement: Standardized function prefixes across the codebase for improved 
   maintainability.

#### 4.1.2 – 2026-05-06

 * New: Automatically redirect to settings page after plugin activation for faster
   onboarding.

#### 4.1.1 – 2026-03-18

 * New: Automatic redirect to settings page after plugin activation for first-time
   setup
 * Enhancement: Improved plugin activation flow and user onboarding experience

#### 4.1.0 – 2026-02-05

 * New: Deactivation feedback popup to collect user insights and improve the plugin
 * New: Professional modal UI with WordPress Dashicons for deactivation reasons
 * New: Optional contact consent checkbox for user support follow-up
 * Enhancement: Encrypted data transmission for deactivation feedback with AES-256-
   CBC
 * Enhancement: Comprehensive system information collection (PHP, WordPress, theme
   versions)
 * UI: Modern, accessible deactivation modal with blur background effect
 * UI: Poppins font integration for consistent typography

#### 4.0.1 – 2026-01-29

 * Fix: Fatal error “Call to undefined function” during plugin update tracking.

#### 4.0.0 – 2025-12-10

 * Full PHP/JS/CSS documentation across the codebase and improved code organization.
 * Updated for WordPress 6.9 and PHP 8+; improved performance and accessibility.
 * Optional, encrypted opt-in telemetry (no personal or post content collected).
 * Enhanced uninstall cleanup, validation, and settings UX for developers and editors.
 * Added extra admin settings and customization options for editors and developers.

#### 3.0.0 – 2025-10-03

 * Fixed: Character counter now ignores all HTML tags in both Visual and Text modes(
   counts only visible text)
 * Improved documentation and accessibility
 * Enhanced compatibility with ACF Extended and dynamic field loading

#### 2.0.1 – 2025-05-19

 * Fixed character counting in nested fields
 * Improved performance for large content
 * Added support for custom TinyMCE configurations

#### 2.0 – 2025-05-19

 * Added support for WordPress 6.8
 * Improved character counting accuracy
 * Enhanced validation messages
 * Fixed compatibility issues with ACF Pro 6.0+

#### 1.0.0 – 2025-04-16

 * Initial release
 * Global and per-field character limits
 * Live character counter below WYSIWYG editor
 * Works in both TinyMCE and Text Mode

## Meta

 *  Version **5.0.2**
 *  Last updated **1 month ago**
 *  Active installations **100+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/wysiwyg-character-limit-for-acf/),
   [Gujarati](https://gu.wordpress.org/plugins/wysiwyg-character-limit-for-acf/)
   and [Russian](https://ru.wordpress.org/plugins/wysiwyg-character-limit-for-acf/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/wysiwyg-character-limit-for-acf)
 * Tags
 * [acf](https://en-gb.wordpress.org/plugins/tags/acf/)[character limit](https://en-gb.wordpress.org/plugins/tags/character-limit/)
   [tinyMCE](https://en-gb.wordpress.org/plugins/tags/tinymce/)[validation](https://en-gb.wordpress.org/plugins/tags/validation/)
   [wysiwyg](https://en-gb.wordpress.org/plugins/tags/wysiwyg/)
 *  [Advanced View](https://en-gb.wordpress.org/plugins/wysiwyg-character-limit-for-acf/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/wysiwyg-character-limit-for-acf/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wysiwyg-character-limit-for-acf/reviews/)

## Contributors

 *   [ Code and core ](https://profiles.wordpress.org/codeandcore/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wysiwyg-character-limit-for-acf/)