• Столкнулся с такой проблемой, которую я не могу решить уже несколько месяцев. В WordPress имеет встроенный редактор записей TinyMCE. Собственно дело в том, что когда текст создается непосредственно в самом редакторе, то TinyMCE (редактор) на свое усмотрение некоторые мои пробелы заменяет на неразрывные проблемы (nbsp). Это ведет к тому, что при публикации записи на некоторых строчках показывается 2-3 слова, хотя могло бы уместиться 7. Как с этим бороться?
    Отключить TinyMCE не вариант. Мне нужные все его функции.

Просмотр 15 ответов — с 16 по 30 (всего 32)
  • Просто до WP 4.2 таких проблем не было. Похоже, что тогда в TinyMCE эти неразрывные проблемы удалялись автоматически, а сейчас нет.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    TinyMCE можно проверить отдельно: http://www.tinymce.com/tryit/basic.php

    Нет, не видно. Если запись опубликовать или сохранить, то станут там видны.

    Есть предположение, что пробелы добавляются не при редактировании, а при выводе.

    из-за чего это может происходить?

    Кажется я понял. Мне нужно как-то добавить эту строку на True в настройках TinyMCE.
    remove_trailing_nbsp
    В какой файл нужно это прописывать?

    Разобрался, но это не помогает. Завтра попробую установить сайт тестовый с нуля и протестить на нем.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    remove_trailing_nbsp
    В какой файл нужно это прописывать?

    В functions.php активной темы:

    function my_tinymce_settings( $settings ) {
    	$settings['remove_trailing_nbsp'] = true;
    	return $settings;
    }
    add_filter( 'tiny_mce_before_init', 'my_tinymce_settings' );

    Sergey Biryukov, большое спасибо) Если Вы знаете, то не могли бы описать кратко назначение данной опции? На официальном сайте описание этой функции не отображается.
    Просто сейчас я попробовал обновить на сайте запись с NBSP имеющимися, но безрезультатно. Завтра попробую написать какой-то текст чтобы полностью протестировать данную опцию.
    Кстати да, в режиме текст не отображаются пробелы непрерывные даже после публикации записи на сайте.

    Создал сайт на WP на другом хостинге и домене. Аналогичная ситуация. WP 4.3
    Если поставить пробел, а затем выполнить какое-то действие кроме ввода следующего текста, то затем на этом месте появится NBSP пробел. Это все, что мне удалось заметить в качестве закономерности.

    а мне вот повторить такое не удается никак.

    Хм, странно все это) Попробую напечатать что-нибудь на другом компьютерее совсем

    Мне бы скрипт или плагин найти, который бы удалял все nbsp из статьи с заменой на обычные пробелы во время публикации.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно добавить фрагмент в functions.php активной темы:

    function remove_non_breaking_spaces_from_content( $content ) {
    	return preg_replace( '#\xC2\xA0| #', ' ', $content );
    }
    add_filter( 'the_content', 'remove_non_breaking_spaces_from_content' );

    Сергей, этот код каким образом будет работать? Как я описал выше, или как-то подругому?

    он их удаляет уже при выводе — в базе все равно они будут.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Если нужно именно при публикации — попробуйте так:

    function remove_non_breaking_spaces_from_content( $data ) {
    	$data['post_content'] = preg_replace( '#\xC2\xA0| #', ' ', $data['post_content'] );
    
    	return $data;
    }
    add_action( 'wp_insert_post_data', 'remove_non_breaking_spaces_from_content' );

    Но работать будет, только если пробелы действительно добавляются в редакторе, а не при выводе.

Просмотр 15 ответов — с 16 по 30 (всего 32)
  • Тема «TinyMCE сам ставит неразрывные пробелы (nbsp)» закрыта для новых ответов.