Как я могу ограничить длину символа в выдержке?

Возможный дубликат:
выдержка в символах

У меня вопрос после прочтения этого сообщения ( Как выделить условия поиска без плагина ). Мне очень нравится эта функция (Search Term Without Plugin), но длина символа слишком длинная. Какой код php я должен добавить, чтобы сделать отрывок короче? Был бы признателен, если кто-то может это предложить. Спасибо!

Solutions Collecting From Web of "Как я могу ограничить длину символа в выдержке?"

добавьте эти строки в файл function.php

function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); 

В дополнение к вышеуказанному крючку фильтра, предоставленному в ответ Дипой, здесь есть одна дополнительная функция, которая может помочь вам расширить использование the_excerpt двумя способами,

Позволяет вам…

Ограничьте выдержку количеством символов, но НЕ усекайте последнее слово. Это позволит вам вернуть максимальное количество символов, но сохранить полные слова, поэтому возвращаются только слова, которые могут вписываться в указанный предел числа, и позволяют указать источник, из которого будет извлекаться отрывок.

 function get_excerpt($limit, $source = null){ if($source == "content" ? ($excerpt = get_the_content()) : ($excerpt = get_the_excerpt())); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */ 

Эта функция может использоваться несколько раз через файлы тем, каждая из которых имеет разные ограничения символов.

Эта функция имеет возможность извлекать выдержку из любой,

  • the_content
  • the_excerpt

Например, если у вас есть сообщения, содержащие текст в поле the_excerpt на экране редактора сообщений, но вы хотите вытащить выдержку из тела the_content вместо специального использования, вы бы сделали это;

 get_excerpt(140, 'content'); //excerpt is grabbed from get_the_content 

Это говорит функции, что вы хотите, чтобы первые 140 символов the_content , независимо от того, установлен ли фрагмент в поле the_excerpt .

 get_excerpt(140); //excerpt is grabbed from get_the_excerpt 

Это говорит функции, что вы хотите, чтобы первые 140 символов из the_excerpt сначала, где нет the_content , the_content будет использоваться в качестве резервной the_content .

Эта функция может быть улучшена, чтобы быть более эффективной и включаться с использованием фильтров WordPress для обоих: the_content или the_excerpt или просто использоваться как есть в ситуациях, когда нет подходящей встроенной альтернативы API WordPress.