Fixing Incorrect Word-Wrapping in Text Modules due to Non-Breaking Spaces

|

If you're having problems with words in your Divi builder text modules wrapping strangely, e.g. moving onto the next line even when there is clearly space for them on the current line, it might be caused by "non-breaking" space characters in the text.

" " is the HTML code for a non-breaking space – which looks like a space, but is treated as part of the adjoining word(s) when it comes to wrapping. These characters are pretty easy to accidentally pick up when copying and pasting text, etc. This is particularly true when using the Divi Theme's visual builder, since it adds non-breaking spaces as a way of representing newlines in the text.

You can use the following PHP code to automatically remove non-breaking spaces from within the text content of your text modules. Note that it leaves nbsp characters which are functioning as newlines in place, to avoid affecting the spacing between paragraphs.

add_filter('et_pb_text_shortcode_output', 'dbc_replace_nbsp_with_spaces');

if (!function_exists('dbc_replace_nbsp_with_spaces')) {
	function dbc_replace_nbsp_with_spaces($content) {
		$nbsp = '(&'.'nbsp;|\xc2\xa0)';
		$not_preceded_by = '<p>';
		$non_newline_nbsp = '(?<!'.$not_preceded_by.')'.$nbsp;
		return preg_replace("/{$non_newline_nbsp}/", ' ', $content);
	}
}

4 Comments

  1. This is so suprisingly great piece of code that I had to come bask here and say: thank you very much! You made my websites so much easier to develop! :)

    Reply
    • Thanks, Michal! Glad it helped :)

      Reply
  2. Thank you for posting this! I have one Divi site out of dozens that has this behavior. I'm not sure why, but your code fixed the problem.

    Reply
    • You're welcome, Pat! Yeah, I'm not quite sure why it happens on some sites and not others. I'm glad that the code helped anyway :)

      Reply

Submit a Comment

Comments are manually moderated and approved at the time they are answered. A preview is shown while pending but may disappear if your are cookies cleared - don't worry though, the comment is still in the queue.

Your email address will not be published. Required fields are marked *.

We may earn a commission when you visit links on our website.