WordPress automatically adding “ ”?

I’m not sure if is wordpress itself or Tiny MCE that’s doing it. But when switching between HTML and Visual editor it’s adding  , and adding an extra one each time I switch back and forth. I don’t even have a line break in the code, it seems to somehow be deciding where it wants to place them based on the tags in my html code.

What’s causing this and how do I fix it?

Read More

I’ve already tried this in the template functions file:

//disable auto p
remove_filter ('the_content', 'wpautop');
remove_filter ('comment_text', 'wpautop');
// Remove auto formatting
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');

Related posts

Leave a Reply

6 comments

  1. All I use is remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' ); and that stops WordPress from creating any extra markup. Are you copying and pasting your code from an external editor?

  2. I found that non-breaking spaces are being inserted when I use two spaces after a period. The editor seems to interpret the extra space as an attempt on my part to use spaces for text formatting.

    If I copy-and-paste my article from the WordPress editor into a text editor that supports hex display (I use EditPad Pro), I see that text that I thought is a period followed by two spaces is in reality text followed by a single space, followed by the unicode character with the hex code A0, which is the Unicode NO-BREAK SPACE character.

    I was able to remove the non-breaking space in existing articles by replacing space followed by the NO_BREAK SPACE character by just a space. In most text editors, you should be able to do that with search & replace by copying the “two spaces” into the Find text box and writing a single space into the Replace text box.

    I was able to avoid the issue going forward by only typing a single space after a period.

  3. What’s causing this and how do I fix it?

    Any content added to or removed from your Post Content is caused by tiny_mce_init, which is applying is’s content-filtering rules.

    The ways to prevent it are:

    1. Filter tiny_mce_init, to override the default content-filtering rules
    2. Stop switching between Visual and HTML editors. Really; unless you want to use option #1 above, don’t switch between editors. WordPress is intended to be used such that content is entered using the Visual or the HTML editor, but not both simultaneously.

    Example use for the tiny_mce_before_init filter in Codex. Another example of TinyMCE configuration/customization in Codex here.

  4. In case there is somebody still stuck with this in 2020.
    We had this issue after migrating a bunch of content to WordPress. Guess what, everybody did the copy and paste thing and we end up with way too much content to be able to fix manually. I implemented the php function bellow and added it to functions.php and it solved the issue for us.

        function replace_content($content) {
            $content = htmlentities($content, null, 'utf-8');
            $content = str_replace(" ", " ", $content);
            $content = html_entity_decode($content);
        return $content;
        }
        add_filter('the_content','replace_content', 999999999)
    

    The 999999 is just to make sure this filter will run last, in case these   are being added somewhere in the middle.

  5. I’m using WordPress for a Hebrew Blog.

    Workaround:
    Copy the text into an editor like sublime or notepad++ and search and replace the with normal spaces. You can copy one of them from the text.

    Disclaimer: this is not much of an answer and more of a workaround so feel free to downvote.
    For me WordPress is happily adding nbsp everywhere and without rhyme or reason. Not sure what is causing it. It is happening with Hebrew text a lot, much more than with any English text.