Ready to get started?Download WordPress

Plugin Directory

Preserve Code Formatting

Preserve formatting of code for display by preventing its modification by WordPress and other plugins while also retaining whitespace.

3.5 (2014-01-11)

  • Add setting to control if code should be preserved in posts (default is true)
  • Don't wrap 'pre' tags in 'pre' despite settings values
  • Update plugin framework to 037
  • Better singleton implementation:
    • Add get_instance() static method for returning/creating singleton instance
    • Make static variable 'instance' private
    • Make constructor protected
    • Make class final
    • Additional related changes in plugin framework (protected constructor, erroring __clone() and __wakeup())
  • Add unit tests
  • Add checks to prevent execution of code if file is directly accessed
  • Re-license as GPLv2 or later (from X11)
  • Add 'License' and 'License URI' header tags to readme.txt and plugin file
  • Use explicit path for require_once()
  • Discontinue use of PHP4-style constructor
  • Discontinue use of explicit pass-by-reference for objects
  • Remove ending PHP close tag
  • Minor documentation improvements
  • Minor code reformatting (spacing, bracing)
  • Note compatibility through WP 3.8+
  • Drop compatibility with version of WP older than 3.6
  • Add comments explaining use of base64_encode and base64_decode
  • Update copyright date (2014)
  • Regenerate .pot
  • Change plugin description (to make it shorter)
  • Change donate link
  • Omit final closing PHP tag
  • Add assets directory to plugin repository checkout
  • Update screenshot
  • Move screenshot into repo's assets directory
  • Add banner


  • Fix bug with settings form not appearing in MS
  • Update plugin framework to 032
  • Remove support for 'c2c_preserve_code_formatting' global
  • Note compatibility through WP 3.3+
  • Drop support for versions of WP older than 3.1
  • Change parent constructor invocation
  • Create 'lang' subdirectory and move .pot file into it
  • Regenerate .pot
  • Add 'Domain Path' directive to top of main plugin file
  • Add link to plugin directory page to readme.txt
  • Add text and FAQ question regarding how shortcodes are prevented from being evaluated
  • Tweak installation instructions in readme.txt
  • Update screenshot for WP 3.3
  • Update copyright date (2012)


  • Fix to properly register activation and uninstall hooks
  • Update plugin framework to version v023
  • Save a static version of itself in class variable $instance
  • Deprecate use of global variable $c2c_preserve_code_formatting to store instance
  • Add __construct(), activation(), and uninstall()
  • Explicitly declare functions public and variable private
  • Remove declarations of instance variable which have since become part of the plugin framework
  • Note compatibility through WP 3.2+
  • Drop compatibility with version of WP older than 3.0
  • Minor code formatting changes (spacing)
  • Update copyright date (2011)
  • Add plugin homepage and author links in description in readme.txt


  • Re-implementation by extending C2C_Plugin_016, which among other things adds support for:
    • Reset of options to default values
    • Better sanitization of input values
    • Offload of core/basic functionality to generic plugin framework
    • Additional hooks for various stages/places of plugin operation
    • Easier localization support
  • Full localization support
  • Change storing plugin instance in global variable to $c2c_preserve_code_formatting (instead of $preserve_code_formatting), to allow for external manipulation
  • Rename class from 'PreserveCodeFormatting' to 'c2c_PreserveCodeFormatting'
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Note compatibility with WP 2.9+, 3.0+
  • Drop compatibility with versions of WP older than 2.8
  • Add PHPDoc documentation
  • Minor tweaks to code formatting (spacing)
  • Add package info to top of plugin file
  • Add Upgrade Notice section to readme.txt
  • Update copyright date
  • Remove trailing whitespace
  • Add .pot file


  • Fixed some borked code preservation by restoring some processing removed in previous release


  • Fixed recently introduced bug affecting occasional code preservation by using a more robust alternative approach
  • Fixed "Settings" link for plugin in plugin listing, which lead to blank settings page
  • Changed help text for preservable tags settings input to be more explicit


  • Fix to retain any attributes defined for tags being preserved
  • Fixed recently introduced bug affecting occasional code preservation


  • Fixed newly introduced bug that added unnecessary slashes to preserved code
  • Fixed long-running bug where intended slashes in code got stripped on display (last remaining known bug)


  • Fixed long-running bug that caused some preserved code to appear garbled
  • Updated a lot of internal plugin management code
  • Added 'Settings' link to plugin's plugin listing entry
  • Used plugins_url() instead of hardcoded path
  • Brought admin markup in line with modern conventions
  • Minor reformatting (spacing)
  • Noted compatibility through WP2.8+
  • Dropped support for pre-WP2.6
  • Updated copyright date
  • Updated screenshot


  • Completely rewritten
  • Now properly handles code embedded in comments
  • Created its own class to encapsulate plugin functionality
  • Added admin options page under Options -> Code Formatting (or in WP 2.5: Settings -> Code Formatting). Options are now saved to database, negating need to customize code within the plugin source file.
  • Removed function anti_wptexturize() as the new handling approach negates its need
  • Changed description; updated installation instructions
  • Added compatibility note
  • Updated copyright date
  • Moved into its own subdirectory; added readme.txt and screenshot
  • Tested compatibility with WP 2.3.3 and 2.5


  • Initial release

Requires: 3.6 or higher
Compatible up to: 3.8.3
Last Updated: 2014-1-12
Downloads: 16,824


4 stars
4.8 out of 5 stars


0 of 1 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.