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

This post may contain referral links which may earn a commission for this site

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 = '( |\xc2\xa0)';
		$not_preceded_by = '<p>';
		$non_newline_nbsp = '(?<!'.$not_preceded_by.')'.$nbsp;
		return preg_replace("/{$non_newline_nbsp}/", ' ', $content);
	}
}

Hundreds of new features for Divi
in one easy-to-use plugin

2 Comments

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

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