Как сделать так, чтобы на главной странице сайта отображались только первые X (скажем, 300) слов поста?
Но без использования тега «больше» или выдержек, заполненных вручную? Я ищу плагин/хак для WP 2.9 и выше.
Я нашел несколько решений до сих пор, но надеюсь на рекомендуемое решение.
Проблемы, с которыми я столкнулся до сих пор:
- Что произойдет, если тег (например) начинается со слова 295 и заканчивается после слова 301?
- Возможно ли иметь другой X для домашней страницы, страницы тегов, страницы категории и так далее?
- Можно ли сохранить формат текста? (все изображения и форматирование текста)?
- Наличие плагина требует наименьшего количества ресурсов с сервера.
Если вы хотите сохранить формат, функция get_first_words($html_source, $number_of_words) должна поддерживать HTML, но сокращение таблицы пополам из-за совпадения X слов не всегда подходит. Вам может помочь htmlpurifier.org или TIDY, который поставляется с парсером тегов, а также domdocument.
Спасибо Джон, я надеюсь, что решения Hakre будет достаточно. Но если нет, возможно, я совмещу это с вашим решением. С уважением, Таль
Изменить количество слов на главной странице легко:
Просто скопируйте этот код и измените условную проверку, чтобы добавить его на другие страницы. Другой вариант — просто вставить код на страницу шаблона (
home.php
,tag.php
, и т. д.), чтобы вы знали, что он будет установлен на нужной странице.Использование
the_excerpt()
автоматически удалит шорткоды и html из контента, если не предоставлена выдержка. Вы можете удалить эти фильтры, но это значительно усложнит подсчет слов, когда вы добавляете разметку в смесь. Если вы хотите сохранить форматирование/текст/изображения, для этогоmore
предназначен тег. Он вставлен вручную, потому что слишком сложно автоматически определить во всех случаях, куда должен идти этот разрыв.Для этого вы можете использовать плагин Fancy Excerpt для WordPress и немного изменить его. Он сохраняет стиль, делает подсчет слов. Вам просто нужно немного изменить это, чтобы иметь количество слов и, возможно, если вам не нравится многоточие, чтобы изменить окончание.
если вам просто нужны первые 300 слов контента, вы можете легко получить его с помощью