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

<p>как сделать так, чтобы на главной странице сайта отображались только первые x (скажем, 300) слов поста?</p><p>но без использования тега "more" или отрывков от руки? я ищу плагин/хак для wp 2.9 и далее.</p><p>до сих пор я сталкивался с несколькими решениями, но надеюсь на рекомендуемое решение.</p><p>проблемы, которые я преодолел до сих пор:</p><ul> <li>что происходит, если тег (например) начинается в word 295 и заканчивается после word 301?</li> <li>можно ли иметь другой x для домашней страницы, страницы тегов, страницы категории - и так далее?</li> <li>можно ли сохранить формат текста? (все изображения и форматирование текста)?</li> <li>плагин получает наименьшее количество ресурсов с сервера.</li> </ul>

<p>изменить количество слов на домашней странице очень просто:</p><pre><code>if( is\_home() ) add\_filter( 'excerpt\_length', create\_function( '', 'return 300;' ) ); </code></pre><p>просто скопируйте этот код и измените условную проверку, чтобы добавить ее на другие страницы. другой вариант - просто вставить код на страницу шаблона (<code>home.php</code>, <code>tag.php</code> и т.д.), чтобы вы знали, что он будет установлен на правильной странице.</p><p>использование <code>the\_excerpt()</code> автоматически удаляет шорткоды и html из содержимого, если не предоставлено никаких выдержек. вы можете удалить эти фильтры, но это значительно усложняет подсчет word при добавлении разметки в микс. если вы хотите сохранить форматирование/текст/изображения, это то, для чего предназначен тег <code>more</code>. он вставлен вручную, потому что слишком сложно автоматически определить, во всех случаях, где должен произойти этот разрыв.</p>

<p>для этого вы можете использовать <strong> <a href="http://www.semiologic.com/software/fancy-excerpt/">fancy excerpt plugin for wordpress</a> </strong> и немного его изменить. сохраняет стиль, делает подсчет слов. вам просто нужно немного изменить это, чтобы иметь счетчик слов, и, возможно, если вам не нравится, чтобы многоточие также изменило окончание.</p>

<p>если вам просто нужны первые 300 слов контента, вы можете легко получить его с</p><pre><code>wp\_trim\_words( $post->post\_content, 300, ''); </code></pre>