Disable WordPress’ Automatic Formatting:
The problem.
You have probably noticed that, by default, WordPress converts normal quotes to “curly” quotes, and makes other little formatting changes when a post is displayed.
This is very cool for people who publish normal content, but anyone who uses their blog to discuss code will be annoyed because, when pasted in a text editor, code with curly quotes returns syntax errors.
The solution.
Simply paste the following code in your functions.php file:
function my_formatter($content) {
$new_content = '';
$pattern_full = '{(\[raw\].*?\[/raw\])}is';
$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}
return $new_content;
}
remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'my_formatter', 99);
Once that’s done, you can use the [raw]
shortcode in your posts:
[raw]This text will not be automatically formatted.[/raw]
Code explanation.
Our first step here was to create a function that uses a regular expression to find the [raw]
shortcode in your posts’ content.
Then we hook our my_formatter()
function to WordPress’ the_content()
function, which means that my_formatter()
will now be automatically called every time the_content()
is called.
To remove the automatic formatting, we use the remove_filter()
function, which lets you delete a hook on a specific function.
gardening tips for spring
March 29, 2014 at 11:51 pmAppreciate this post. Let me try it out.