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

Примечание: Этот текст может содержать некоторые партнерские ссылки, а это значит, что я зарабатываю небольшую комиссию без каких-либо дополнительных затрат с вашей стороны, если вы воспользуетесь этими ссылками. Спасибо за понимание и поддержку.

Прошло несколько лет, но проблема «черного ромба с вопросом внутри» никуда не исчезла.
Эту статью я написал в марте 10 года на одном из своих каталогов бесплатных тем WordPress. И до сегодня ко мне на сайт идут через поисковый запрос — черный ромб с вопросом. Скорее всего, проблема так и осталась.
Решил поэтому эту статью пере опубликовать здесь, так как уверен, что у вас может быть такая же ошибка в вашей теме WordPress. Я рассказываю, как ее исправить.


Описание проблемы на примере

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

excerpt

Решение проблемы черного ромба с вопросом

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

<?php echo dp_clean($post-&amp;amp;gt;post_content, 250); ?<br ?>

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

После этого я не стал листать книги по PHP и MySQL, а просто загуглил вопрос в поиске и стал кропотливо искать пояснения, как мне обойти эту проблему. Нашел достаточно много информации, но все было не то. И только в одной статье нашел прямую подсказку, какую функцию можно использовать для вывода анонсов статьи на главной – the_excerpt (). Я решил попробовать и заменил ту, которую поставил автор, на эту.

Кстати, советую вам прежде, чем вы что-то решили поменять в коде, сначала сохранить файл.

Я сделал чуть проще: так как я менял только одну строку, я просто закомментировал функцию автора. Вы тоже можете использовать подобный подход. Как это делается? Очень просто перед началом любой функции надо поставить вот такие знаки:

Советую прочитать еще:  Как правильно оптимизировать медиаконтент на вашем сайте?

Например:

<!---<?php echo dp_clean($post-&gt;post_content, 250); ? >--->

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

<?php the_excerpt () ; ?>

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

Показываю на том же примере, что и вверху:

excerpt2

Что сразу бросается в глаза: черного ромба нет, но…. Количество слов увеличилось, а это не очень красиво выглядит. Теперь текст обтекает картинку не только слева, но и внизу. Страница потеряла привлекательность.

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

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

<?php the_excerpt_reloaded(50, '', 'none', TRUE, '', 2); ?>

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

Советую прочитать еще:  Совет недели: 5 вещей, которые можно удалить из вашего Wordpress прямо сейчас

excerpt3

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

Как использовать функцию the_excerpt_reloaded ? Это плагин, который так и называется. Я его всегда ложу в папку шаблона моей любимой китаянки 🙂 когда сталкиваюсь с ее “кривой” функцией dp_clean($post->post_content, 250).

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

Скачать плагин The Excerpt Reloaded

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

Будут вопросы, отзывы, советы – пишите в комментариях.

Источник: wpfreethemes.ru

Если материал вам понравился, нажмите или расскажите о нем друзьям!

Важно! Эта запись может содержать ссылки на плагины, которые к моменту вашего чтения и скачивания могут работать не корректно. Будьте внимательны.

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

Ваш email нигде не будет показан. Обязательные поля помечены *