Как показать только первые x слова (из каждого поста) на домашней странице?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/830

  •  16-10-2019
  •  | 
  •  

Вопрос

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

Но без использования тега «больше» или заполненных рук выдержки? Я ищу плагин/взломать WP 2.9 и дальше.

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

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

  • Что происходит в случае, если тег (например) начинается с слова 295 и заканчивается после слова 301?
  • Может ли можно иметь другой x для домашней страницы, страницы тегов, страницы категории - и так далее?
  • Можно ли сохранить формат текста? (Все изображения и формирование текста)?
  • Налив плагин взял наименьшее количество переворотов с сервера.
Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

wp_trim_words( $post->post_content, 300, '');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top