Wordpress автоматично додає "& nbsp;"?


12

Я не впевнений, чи це слово wordpress чи Tiny MCE, що робить це. Але при перемиканні між HTML і редактором Visual він додає  і додає додатковий кожен раз, коли я перемикаюсь назад і назад. У мене навіть немає розриву рядка в коді, він, здається, якимось чином вирішує, де він хоче розмістити їх на основі тегів у моєму html-коді.

Що викликає це і як це виправити?

Я вже пробував це у файлі функцій шаблону:

//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');

2
Це насправді робиться це автоматично, коли ви перемикаєте вкладки, я теж помітив це і вважав це дуже дратує. Немає жодного поняття, як це все виправити ...
Joost de Valk,

1
Я використовую HTML-редактор майже виключно, вставляючи там код від BBEdit. Здається, це робиться мені, коли я економлю в WP.
Обмін

ну у мене є і ця проблема. Коли я розміщую повідомлення вручну і натискаю кнопку Enter, це додасть для мене абзац. Це відбувається після того, як я встановив крихітний mce. Що ви маєте на увазі під цим: відфільтруйте tiny_mce_init, щоб замінити стандартні правила фільтрації вмісту

1
Це відбувається зі мною на заголовках постів у циклі. Здається, без розбору (трапляється лише на певних просторових символах деяких дописів).
Дрюдавід

Мені вдалося знайти просте вирішення цього питання: wordpress.stackexchange.com/a/291746/135285
AturSams

Відповіді:


2

Я використовую лише remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );те, що не дозволяє Wordpress створювати зайву розмітку. Ви копіюєте та вставляєте код із зовнішнього редактора?


4
не працювало для мене. Без використання Tiny MCE, лише в HTML кожне "оновлення" все ще додає нові  s
Крістіан

3
Також не працює для мене
sidonaldson

4

Я виявив, що нерозривні пробіли вставляються, коли я використовую два пробіли після періоду. Здається, редактор інтерпретує додатковий простір як спробу з мого боку використовувати пробіли для форматування тексту.

Якщо я копіюю та вставляю свою статтю з редактора Wordpress в текстовий редактор, що підтримує шестигранний дисплей (я використовую EditPad Pro), я бачу, що текст, який я вважав періодом, за яким два пробіли, є в реальності текстом, за яким йде один пробіл, за яким слідує символ unicode з шестинадцятковим кодом A0, який є символом Unicode NO-BREAK SPACE .

Мені вдалося видалити нерозривний пробіл у існуючих статтях, замінивши пробіл, а потім символ NO_BREAK SPACE просто пробілом. У більшості текстових редакторів ви можете це зробити за допомогою пошуку та заміни, скопіювавши «два пробіли» у текстове поле «Знайти» та записавши один пробіл у текстове поле «Замінити».

Мені вдалося уникнути подальшої проблеми, ввівши лише один пробіл після періоду.


3

Що викликає це і як це виправити?

Будь-який вміст, доданий або видалений із вашого вмісту публікації, спричиняється tiny_mce_initправилами фільтрації вмісту.

Способи запобігти цьому:

  1. Фільтр tiny_mce_init, щоб замінити стандартні правила фільтрації вмісту
  2. Зупиніть перемикатися між редакторами Visual та HTML . Дійсно; якщо ви не хочете використовувати варіант №1 вище, не перемикайтеся між редакторами . WordPress призначений для використання таким чином, що вміст вводиться за допомогою редактора Visual або HTML , але не обидва одночасно.

Приклад використання для tiny_mce_before_initфільтра в Codex. Інший приклад конфігурації / налаштування TinyMCE в Codex тут .


11
Я майже впевнений, що ваша відповідь №2 неправильна. Той чи хтось "накрутив пул" на інтерфейс користувача. Якщо редактор мав використовуватися лише як Visual або HTML, навіщо взагалі існувати вкладки? Чому б просто не мати його як опцію в налаштуваннях, щоб використовувати його так чи інакше? Більше того, вкладки там за замовчуванням ... це не якась додаткова функція розробника чи опція, яку ви повинні налаштувати. Я впевнений, що вони призначені для того, щоб користувачі могли натискати між собою і назад, і що справжня проблема полягає в тому, що іноді вони не працюють добре разом. (особливо у випадку космічного форматування)
luckykind

1
@luckykind Ні, вони не збиралися перемикатися вперед і назад між ними. Це лише архітектурна проблема TinyMCE . І це не єдине .
кайзер

3
Ви не можете сказати мені, що призначений для користувача інтерфейс, який пропонує вкладки для перемикання вперед і назад між редагуванням HTML і Visual, таким чином не призначений. Це майже 2016 рік, і питання все ще існує.
Ерік Дж.

1
Я думаю, що мій комп'ютер не передбачався вмикати, але оскільки у нього є кнопка живлення, ми увімкнули його, таким чином, всі проблеми є виною користувача. Дизайн та код очевидно бездоганні.
AturSams

1

Я використовую Wordpress для єврейського блогу.

Вирішення: скопіюйте текст у такий редактор, як піднесений або блокнот ++, і знайдіть і замініть звичайні пробіли. Ви можете скопіювати один з них з тексту.

Відмова від відповідальності: це не багато відповіді, а більше вирішення, тому сміливо зволікайте. Для мене Wordpress із задоволенням додає nbsp скрізь і без рими чи причини. Не впевнений, що це викликає. З івритським текстом це відбувається набагато, набагато більше, ніж з будь-яким англійським текстом.


0

На випадок, якщо хтось все-таки затримався з цим у 2020 році. У нас виникла ця проблема після перенесення купки вмісту до Wordpress. Здогадайтеся, що всі зробили, скопіювавши та вставивши, і ми закінчилися занадто великим вмістом, щоб можна було виправити вручну. Я реалізував функцію php внизу і додав її до function.php, і це вирішило проблему для нас.

    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)

999999 призначений лише для того, щоб цей фільтр працював останнім, якщо вони  додаються десь посередині.


-1

У файлі css. Покладіть display: inline-flexдо р всередину the excerpt. Додаткові білі простори більше не турбують. працює для мене

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.