Черный ромб с вопросом внутри

By | 05.10.2012

Всем добрый день! Как-то, экспериментируя с темами wordpress, столкнулся с проблемой неправильной кодировки русского текста в анонсах статьи на главной странице. Проблема была в том, что фраза обрезалась на неожиданном месте и в конце стоял вот такой символ – черный ромб с вопросом внутри:

  excerpt_thumb

При этом обратил внимание, что английский текст отображался корректно. Я понял, что проблема лежит в том, что функция, которую использовал автор, некорректно работает с таблицей кириллицы. Во-первых, сначала я посмотрел на функцию, которую автор поставил в файле index.php для вывода анонса статьи. Выглядит она вот так:

Я решил, что число 250 – это количество символов, которое выводится на главной и стал методом “тыка” его менять, чтобы получить в результате нормальное отображение текста, без черного ромба. Конечно, у меня ничего не получилось :)

После этого я не стал листать книги по PHP и MySQL, а просто загуглил вопрос в поиске и стал кропотливо искать пояснения, как мне обойти эту проблему. Нашел достаточно много информации, но все было не то. И только в одной статье нашел прямую подсказку, какую функцию можно использовать для вывода анонсов статьи на главной – the_excerpt (). Я решил попробовать и заменил ту, которую поставил автор, на эту. Кстати, советую вам прежде, чем вы что-то решили поменять в коде, сначала сохранить файл. Я сделал чуть проще: так как я менял только одну строку, я просто закомментировал функцию автора. Вы тоже можете использовать подобный подход. Как это делается? Очень просто перед началом любой функции надо поставить вот такие знаки: <!— а после окончания функции – такие: —> Например:

Таким образом, функция закрыта и работать не будет. Это значит, что мы ее “закомментировали”. Теперь вставляем функцию the_excerpt (). Выглядеть она будет так:

Чтобы вам было более понятно, в каком месте необходимо её вставлять, я вам покажу всю часть кода из файла index.php с комментариями в конце каждой строки, что именно выполняется каждой строкой этой части кода. Пример мой из шаблона китаянки, как раз с тем “кривым” кодом:

А теперь посмотрим, что произошло после замены “кривой” функции dp_clean($post->post_content, 250) на новую, – the_excerpt (). Показываю на том же примере, что и вверху:

excerpt2_thumb

Что сразу бросается в глаза: черного ромба нет, но…. Количество слов увеличилось, а это не очень красиво выглядит. Теперь текст обтекает картинку не только слева, но и внизу. Страница потеряла привлекательность. В чем причина? А причина как раз в функции the_excerpt (), у которой количество символов стоит как бы по умолчанию, и регулировать их вывод мы не можем.

Получается, что одну проблему мы убрали, но столкнулись с другой. Опять я возвращаюсь в поиск и с помощью великого Google (а куда без них и Яшки?) ищу ответ на новую проблему. Искал долго, честное слово. Потому как точно не знал, что ищу. И наконец наткнулся на блог Соники, где она подробно описывает работу еще одной функции, а точнее – плагина, который позволяет регулировать количество символов в анонсе статьи, атакже – настроить еще несколько важных свойств вывода анонса. Я не буду здесь повторять ее статью, а просто отправлю вас к ней – читайте если надо. Здесь я скажу только несколько слов. Внимательно изучив все возможные варианты, я настроил вывод функции так:

Все, что находится между круглыми скобками – это дополнительные аргументы. Не буду их описывать, скажу только главное: число 50 – это количество слов в анонсе. Честно – считал и сравнивал, не совпадает, но – работает. Регулируйте больше или меньше, и увидите, что количество выводимых слов меняется. И главное: все равно при написании статьи используйте тег <!—more—>, тогда вы сможете добиться четкого отображения слов в анонсе, под обрез самой картинки:

excerpt3_thumb
Видите, в первых двух записях я, используя в редакторе тег  <!—more—> добился, чтобы анонс заканчивался вровень с картинкой, а в последней статье этого не сделал.

Как использовать функцию the_excerpt_reloaded ? Это плагин, который так и называется. Я его всегда ложу в папку шаблона моей любимой китаянки :) когда сталкиваюсь с ее “кривой” функцией dp_clean($post->post_content, 250). Плагин относится к разряду плагинов, о которых говорят – поставил и забыл. Главное, не забыть руками удалить “кривую” функцию и прописать нужную в тех файлах шаблона, где она работает. Обычно это файлы index.php, archive.php, search.php.

Если вы столкнулись с нечто подобным в своем шаблоне, который брали не у меня, но видите в анонсах черный ромб и знак вопроса – скачайте плагин и попробуйте сделать так как я написал выше. Возможно, вам это поможет.

Скачать плагин the-excerpt-reloaded.

Плагин The-Excerpt-Reloaded (2,3 KiB, 862 скачиваний)

Напомню еще, что обычным блокнотом править файлы php не надо. Надо использовать специальные редакторы с поддержкой UTF-8 (например, notepad++).

P.S. Источник http://www.bestwordpress.org.ua/archives/6744

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.