talgalili
  • 0
Эксперт

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

  • 0

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

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

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

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

  • Что произойдет, если тег (например) начинается со слова 295 и заканчивается после слова 301?
  • Возможно ли иметь другой X для домашней страницы, страницы тегов, страницы категории и так далее?
  • Можно ли сохранить формат текста? (все изображения и форматирование текста)?
  • Наличие плагина требует наименьшего количества ресурсов с сервера.
Share
  1. Если вы хотите сохранить формат, функция get_first_words($html_source, $number_of_words) должна поддерживать HTML, но сокращение таблицы пополам из-за совпадения X слов не всегда подходит. Вам может помочь htmlpurifier.org или TIDY, который поставляется с парсером тегов, а также domdocument.

    • 0
  2. Изменить количество слов на главной странице легко:

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

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

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

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

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

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

Оставить ответ

You must login to add an answer.