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);
}
}
Related Post: Adding PHP to the Divi Theme
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! :)
Thanks, Michal! Glad it helped :)
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.
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 :)