This little snippet will remove all smart curly quotes and replace them with standard straight quotes. The code needs to be placed within your theme's functions.php
.
add_filter('the_excerpt', 'removesmartquotes');
add_filter('the_content', 'removesmartquotes');
function removesmartquotes($content)
{
$content = str_replace("“", """, $content);
$content = str_replace("”", """, $content);
$content = str_replace("’", "'", $content);
$content = str_replace("‘", "'", $content);
return $content;
}
All this is doing is creating a new filter for the_content and the_excerpt that does a simple string replace, from curly to straight.
There are other methods, one of which is to use:
remove_filter('the_content', 'wptexturize');
However, this will remove all formatting, including ampersands and so on. I had great trouble with XML after this one, which is why I wrote my own.
This is exactly what I was looking for! I couldn't figure out why my html in a code box kept getting scrambled when copied and pasted, but it was the "smart curly quotes" you mention not being recognized, so I added your code and no issues now! Also had a problem converting the opening and closing < > characters, but I added your "other" method and that's all good now too. Thank-you, I was pulling my hair out!