it-swarm.xyz

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

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

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

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

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

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

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

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

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

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

3
John P Bloch

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

1
hakre

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

wp_trim_words( $post->post_content, 300, '');
0
Geza Gog