Проблемы с переносом слов со специальными символами в wordpress

В своем блоге WordPress я вставил следующий контент в поле «Описание» в форме добавления нового сообщения.

sss'ss''ss'''ss"ss""sss"""

Я применяю перехватчик фильтра (add_filter) к функции the_content (), как показано ниже. В основном я хочу отображать слова без пробелов, если они существуют более 50 символов, значит, я хотел бы оставить пробел после 50 символов. Поэтому я использовал для этого функцию wordwrap. Но при использовании в контенте специальных символов я получаю проводной вывод, как указано ниже.

function.php

function filter_content($content) {
  global $post;  
     $original = wordwrap($content,50,' ',' ' ); 
  return $original;
}
add_filter( 'the_content', 'filter_content' );

Вывод:

   sss’ss”ss”’ss”ss& #8221;"sss”"”

person Ananth    schedule 29.11.2012    source источник
comment
Что вы имеете в виду, говоря, что я отфильтровал the_content() function с помощью следующей функции.? Вы добавляете функцию the_content() или применяете фильтр к действию HOOK the_content? Это очень разные операции. Кажется очевидным, что результат, который вы получаете, не генерируется функцией wordwrap (), не забывайте, что ловушка the_content - популярный способ изменения содержимого, и вы не знаете, какие другие функции уже делают это или как они это делают. .   -  person PDR    schedule 30.11.2012
comment
Как вы думаете, почему функция wordwrap () имеет какое-либо отношение к странным символам на выходе? Во всяком случае, какой у вас вопрос? В вашем вопросе нет вопросов, я вижу только утверждения.   -  person FarFromGenius    schedule 30.11.2012
comment
Читая более подробно, вы говорите: Когда я использую the_content() function на странице отдельного сообщения, он отображает следующее содержимое с ошибкой.. Я действительно не понимаю. ¿Как вы думаете, проблема связана с the_content() function, когда вы его используете, с переносом слов в ловушке the_content или с обоими? Невозможно угадать, я не буду тратить свое время, пытаясь это сделать. Удачи.   -  person FarFromGenius    schedule 30.11.2012
comment
Я применяю фильтр к действию HOOK для функции the_content, пожалуйста, посмотрите редактирование вопроса.   -  person Ananth    schedule 30.11.2012


Ответы (1)


Проблема:

Функция wordwrap преобразует специальные диаграммы (кавычки, двойные кавычки и т. д.) ) в html-объект и считается строкой. Вхождение 50 символов между & и # из . Пока он делится, мы получили вывод как & # 8221;.

Решение:

Вместо php просто попробуйте свойство word-wrap решения css. Поэтому примените стиль word-wrap: break-word; к тегу абзаца. значение break-word заставит разбить слово. Но нет возможности давать числа вроде 50 и все такое. Это будет заворачиваться в зависимости от ширины контейнера.

p{
 word-wrap:break-word; 
}
person Gowri    schedule 30.11.2012
comment
Я знал, что не должен тратить время на этот вопрос. Вы шутите? Посмотрите на теги ¿Как вопрос может быть связан с CSS? Будьте серьезны, пожалуйста, похоже, вы придумали вопрос для этого удивительного секретного ответа. Кстати, то же самое можно было бы сделать в PHP с параметрами break и TRUE. Излишне говорить, что это действительно плохое решение ¿кто хочет, чтобы слова ломались при переносе слов? Только ты. - person FarFromGenius; 01.12.2012
comment
@FarFromGenius: вы пробовали с ‹br› и истинным параметром или просто гадали. Это не сработает. Да никто не хочет нарушать слово. Я знаю, что решение CSS не лучше. Я также отслеживаю этот вопрос, чтобы получить лучший ответ.! OP может передумать, если кто-то опубликует лучше, чем это. - person Gowri; 03.12.2012