2014-01-24 2 views
1

Как добраться ... (3 точки) в конце отрывка? Я использую эту функцию в моей functions.php3 точки в конце выдержки в Wordpress

function word_count($string, $limit) { 
    $words = explode(' ', $string); 
    return implode(' ', array_slice($words, 0, $limit)); 
} 

И вторя, как это в моем content.php:

echo word_count(get_the_excerpt(), '20'); 

Я хочу 3 точки в конце отрывка. Пожалуйста, помогите. Спасибо.

+1

Вы провели какое-либо исследование? Эта проблема была решена многими людьми. –

+1

Um ... добавить '...'? –

+0

но где добавить? @Lightness Я искал, и все, что у меня было, это как удалить 3 точки. Я хочу добавить 3 точки. – TBI

ответ

1

Если ваши выдержки всегда длиннее 20 слов, вы можете использовать следующий для добавления эллипсиса в любое время, пока укоротить его с word_count функцией

echo sprintf("%s…", word_count(get_the_excerpt(), 20)); 

Если выдержки также могут быть 20 слов или меньше, вам следует также проверить его длину

the_excerpt_max_words(20); 

function the_excerpt_max_charlength($limit) { 

    $words = explode(' ', get_the_excerpt()); 

    //if excerpt has more than 20 words, truncate it and append ... 
    if(count($words) > 20){ 
     return sprintf("%s…", implode(' ', array_slice($words, 0, $limit))); 
    } 

    //otherwise just put it back together and return it 
    return implode(' ', $words); 

} 
+0

Это работает :) Спасибо за помощь :) – TBI

+0

Обратите внимание, что это будет _элемент_ добавить многоточие. Возможно, вы этого не захотите. (Я бы не стал.) –

+0

Проверьте, длина текста оригинала длиннее некоторой точки отсечки (скажем, 21 слова), и только если это так, обрезайте текст и добавьте '& hellip;'. В противном случае просто выведите исходный текст. –

0

WordPress's the_excerpt() function делает это по умолчанию (хотя я думаю, что он использует [...]).

+0

Эта функция работает до 55 слов. Я хочу обрезать всего 30. Возможно ли это? – TBI

+2

@TBI иногда занимает фактически чтение страницы, с которой вы связаны. Как этот раздел https://codex.wordpress.org/Function_Reference/the_excerpt#Control_Excerpt_Length_using_Filters –

+0

Я читал это уже перед тем, как задать вопрос. К сожалению, это не работает для меня :( Нужно ли просто поставить эту функцию в functions.php, и все закончилось, или я что-то пропустил? – TBI

1

Я предпочитаю простой ответ. См. http://codex.wordpress.org/Function_Reference/the_excerpt

function new_excerpt_more($more) { 
    return ''; // replace the normal [.....] with a empty string 
} 
add_filter('excerpt_more', 'new_excerpt_more'); 
+1

В моем случае это сработало, когда я добавил приоритет в add_filter add_filter ('excerpt_more', 'new_excerpt_more', 999); –

Смежные вопросы