Author: Scott Reilly
Version: 2.2.1
First released: 2009-05-28
Last update: 2023-08-15
Compatibility: WP 1.5 – 6.3.4
Download: [ zip ]

Prevent WordPress from converting single and double quotation marks into their curly alternatives, and optionally also convert existing curly quotatio …

Extended Description

By default, WordPress converts single and double quotation marks into their curly alternatives. This plugin prevents that from happening, so you can enjoy your quotation marks in their non-curly glory. If your content happens to already have curly quotation marks in it, then this plugin can optionally also convert them to their non-curly alternatives.

Note: Despite the unfortunately misleading name, this plugin is NOT the antithesis of WordPress’s wptexturize() function. This ONLY prevents WordPress from making HTML entity code substitutions of single and double quotation marks with their curly alternatives and does NOT prevent wptexturize() from making any other character and string substitutions. See the FAQ for details on the filters processed by the plugin.

Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage

Developer Documentation

Developer documentation can be found in That documentation covers the numerous hooks provided by the plugin. Those hooks are listed below to provide an overview of what’s available.

  • c2c_wpuntexturize : An alternative approach to safely invoke c2c_wpuntexturize() in such a way that if the plugin were deactivated or deleted, then your calls to the function won’t cause errors in your site. This only applies if you use the function directly, which is not typical usage for most users.
  • wpuntexturize_filters : customize what filters to hook to be filtered with wpuntexturize. See the Description section for a complete list of all filters that are filtered by default.
  • c2c_wpuntexturize_replacements : Customize the character replacements handled by the plugin.
  • c2c_wpuntexturize_convert_curly_quotes : Enable conversion of preexisting curly quotes into their non-curly alternatives.

Find out more at the plugin’s WordPress Plugin Repository page.


Click to see full-size image.

  1. A screenshot of the plugin's checkbox on the Settings -> Reading admin page. If checked, the plugin will convert existing curly quotation marks into their non-curly alternatives.

    A screenshot of the plugin’s checkbox on the Settings -> Reading admin page. If checked, the plugin will convert existing curly quotation marks into their non-curly alternatives.


  1. Install via the built-in WordPress plugin installer. Or download and unzip inside the plugins directory for your site (typically wp-content/plugins/)
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  3. Optional: If you want to also convert existing curly quotation marks within posts to their non-curly alternatives, then on the Settings -> Reading admin page check the checkbox labeled “Convert existing curly quotes in posts to their non-curly alternatives”. (Reminder that the plugin will always prevent WordPress from converting non-curly quotation marks to the curly alternatives.)

Release Log

2.2.1 (2023-04-29)

  • Change: Note compatibility through WP 6.3+
  • Change: Update copyright date (2023)
  • Change: Add link to in
  • New: Add .gitignore file
  • Unit tests:
    • Fix: Allow tests to run against current versions of WordPress
    • New: Add composer.json for PHPUnit Polyfill dependency
    • Change: Prevent PHP warnings due to missing core-related generated files

2.2 (2021-07-14)

  • Change: Refactor some code to prevent code duplication
  • Change: Check if the plugin’s main class exists before defining it
  • Change: Note compatibility through WP 5.7+
  • Change: Correct documentation regarding the c2c_wpuntexturize_convert_curly_quotes filter
  • Change: Update copyright date (2021)
  • New: Add and move hooks documentation into it
  • Unit tests:
    • Change: Restructure unit test directories and files into new tests/ top-level directory
      • Change: Move phpunit/bin/ into tests/
      • Change: Move phpunit/bootstrap.php into tests/
      • Change: In bootstrap, store path to plugin file constant so its value can be used within that file and in test file
      • Change: Move phpunit/tests/*.php into tests/phpunit/tests/
      • Change: Remove ‘test-‘ prefix from unit test file
    • Fix: Fix test that expected a deprecation notice that wasn’t going to happen
    • New: Add test for allowed_options() that expects a deprecation notice if WP < 5.5
  • Change: Tweak formatting for older readme.txt changelog entries
  • New: Add a few more possible TODO items

2.1 (2020-08-23)

  • Change: Escape settings name before being output as HTML attribute (hardening)
  • Change: Rename whitelist_options() to allowed_options()
  • Change: Handle renamings that took place in WP 5.5
    • New: Add is_wp_55_or_later() for determining if the site is WP 5.5 or later
    • Change: Hook allowed_options instead of whitelist_options for WP 5.5+
    • Change: Call add_allowed_options() instead of add_option_whitelist() for WP 5.5+
  • Change: Convert storage of setting name from private class variable to a class constant
  • New: Add for newly added potential TODO items
  • Change: Restructure unit test file structure
    • New: Create new subdirectory phpunit/ to house all files related to unit testing
    • Change: Move bin/ to phpunit/bin/
    • Change: Move tests/bootstrap.php to phpunit/
    • Change: Move tests/ to phpunit/tests/
    • Change: Rename phpunit.xml to phpunit.xml.dist per best practices
  • Change: Note compatibility through WP 5.5+
  • Unit tests:
    • New: Add test for setting name
    • New: Add test for whitelist_options()
    • Change: Rearrange, label the group, enhance, and expand tests for initialize_setting()

Copyright & Disclaimer

Copyright © 2009-2024 by Scott Reilly (aka coffee2code)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Discussion / Support

Have any questions, comments, or suggestions? Please provide them via the plugin’s support forum. I’ll do my best to reply in a timely fashion and help as best I can.

Unfortunately, I cannot provide guaranteed support, nor do I provide support via any other means.

Was this plugin useful useful to you? Consider giving it a rating. If you’re inclined to give it a poor rating, please first post to the support forum to give me a chance to address or explain the situation.

4 replies on “wpuntexturize”

Leave a Reply

Your email address will not be published.