Comments 7
— Почему WordPress вставляет nbsp?
— Потому что вы сами приносите его снаружи.
Анекдот напомнило: Наконец-то ученые открыли секрет долголетия ежей. Оказывается, никакого секрета нет. Да и живут они, собственно, недолго.
Интересное расследование
Я стал искать через гугль что то про "WordPress вставляет nbsp в текст." и нашел массу страниц на которых обсуждается это вот уже десяток лет.
Все верно за одним исключением - мы действительно так страдали много лет сидя на TinyMCE (wisywig редактор для WordPress) и его привычке вставлять неразрывные пробелы и весь остальной мусор в код. Это происходит даже без вставки какого-либо контента со сторонних сайтов - двойной перевод строки в режиме визуального редактора и вот у вас в коде уже который при рендере оборачивается в <p>. Но уже лет как 6 это в прошлом т.к. дефолтным редактором в WordPress стал Gutenberg(react) у которого нет всех этих проблем.
Причем у вас там какая-то путаница: на 2-м скриншоте явно видно, что это Gutenberg а не TinyMCE. Это значит, что текст вы вставляли/вставляете не в Gutenberg, а в TinyMCE. Решение простое и очевидное - перестаньте использовать TinyMCE.
Так и не понял - а в чём, собственно, проблема? Да, есть NBSP. Должен присутствовать в текста только тогда, когда нужно. Например, чтобы исключить подобное:
И.И.
Иванов
Классический пример типографики: Инициалы имени/отчества и фамилии должны быть в одной строке. И здесь NBSP заменять на обычные пробелы нельзя. Даже если очень длинная фамилия (Квазиантихороводоводоведофиловский) и ограниченная ширина строки будет корректнее поставить перенос в фамилии, а не делать перенос после инициалов.
Близкая ситуация с неразрывным дефисом.
Ох уж эти «скрытые» символы или почему WordPress вставляет nbsp