admin管理员组

文章数量:1201361

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.

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.

Share Improve this question edited Aug 1, 2012 at 2:07 fuxia 107k38 gold badges255 silver badges459 bronze badges asked Jul 31, 2012 at 21:28 radmanradman 1411 silver badge3 bronze badges
Add a comment  | 

4 Answers 4

Reset to default 8

In 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.

本文标签: formattingHow to prevent automatic conversion of dashes to ampndash