When I put -- into a post it is automatically converted to the – –
character in the output by wordpress.
How can I get normal '--'
double dashes in my content.
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityIn your functions.php
:
remove_filter( 'the_content', 'wptexturize' );
And the same for the_excerpt
or the_title
(if required).
I found a solution: If you are using WordPress, in the beginning of your file single.php
add these lines:
<?php
remove_filter( 'the_title', 'wptexturize' );
remove_filter( 'the_content', 'wptexturize' );
remove_filter( 'the_excerpt', 'wptexturize' );
?>
And do your test. I am 99.99% sure that will work because I had the same problem and I fixed it using that lines 10 seconds ago. ;)
Another solution that override the origin function of wptexturize
and update all related filters.
define('EXCERPT_RARELY_2', '{[2}]');
function wptexturize_custom($text = '')
{
$text = preg_replace('!(^|[^\-])\-\-([^\-]|$)!', '$1' . EXCERPT_RARELY_2 . '$2', $text);
// get through origin filter
$text = wptexturize($text);
return str_replace(EXCERPT_RARELY_2, '--', $text);
}
// remove default filter
remove_filter('the_content', 'wptexturize');
// add custom filter
add_filter('the_content', 'wptexturize_custom');
// remove default filter
remove_filter('the_excerpt', 'wptexturize');
// add custom filter
add_filter('the_excerpt', 'wptexturize_custom');
I had the same problem as the OP and the solution proposed by @TheDeadMedic almost worked for me. But my WP version has several function_something.php files and I had to add this to them all (making sure to add them after the php opening code <?php):
remove_filter( 'the_title', 'wptexturize' );
remove_filter( 'the_content', 'wptexturize' );
remove_filter( 'the_excerpt', 'wptexturize' );
Of course only one of them would be needed if you only want to remove the filter for titles, content or excerpt.