Как показать только первые X слов (из каждого сообщения) на главной странице?


Как вы можете сделать так, чтобы на домашней странице сайта отображались только первые X (скажем, 300) слов сообщения?

Но без использования тега "больше" или отрывков, заполненных вручную? Я ищу плагин/хак для WP 2.9 и далее.

До сих пор я сталкивался с несколькими решениями, но надеюсь на рекомендуемое решение.

Проблемы, с которыми я столкнулся до сих пор:

  • Что произойдет, если тег (например) начинается со слова 295 и заканчивается после слово 301?
  • Можно ли использовать другой X для домашней страницы, страницы тегов, страницы категорий и так далее?
  • Можно ли сохранить формат текста? (все изображения и форматирование текста)?
  • Наличие плагина требует наименьшего количества ресурсов с сервера.
Author: Tal Galili, 2010-08-24

3 answers

Изменить количество слов на домашней странице легко:

if( is_home() )
  add_filter( 'excerpt_length', create_function( '', 'return 300;' ) );

Просто скопируйте этот код и измените условную проверку, чтобы добавить это на другие страницы. Другой вариант - просто вставить код на страницу шаблона (home.php, tag.php, и т.д.), так что вы знаете, что он будет установлен на правильной странице.

Использование the_excerpt() автоматически удалит короткие коды и html из содержимого, если отрывок не предоставлен. Вы можете удалить эти фильтры, но это значительно усложняет работу с word учитывается, когда вы добавляете разметку в микс. Если вы хотите сохранить форматирование/текст/изображения, для этого предназначен тег more. Он вставляется вручную, потому что слишком сложно автоматически определить во всех случаях, где должен быть этот разрыв.

 3
Author: John P Bloch, 2010-08-24 15:39:47

Вы можете использовать Необычный Плагин Выдержки Для WordPress для этого и немного измените его. Он сохраняет стиль, подсчитывает слова. Вам просто нужно немного изменить это, чтобы у вас было количество слов, и, возможно, если вам не нравится многоточие, также измените окончание.

 1
Author: hakre, 2010-08-24 15:47:38

Если вам просто нужны первые 300 слов контента, вы можете легко получить его с помощью

wp_trim_words( $post->post_content, 300, '');
 0
Author: Geza Gog, 2018-05-30 07:57:32