обрезать настраиваемое текстовое значение поля и показать (…)

Я использую этот код здесь:

<?php $trim_length = 25; //desired length of text to display $custom_field = 'my-custom-field-name'; $value = get_post_meta($post->ID, $custom_field, true); if ($value) { echo rtrim(substr($value,0,$trim_length)); } ?> 

Он работает, но я хотел бы иметь «(…)» в конце обрезанного текста. И только если значение действительно было обрезано.

Я использовал if ($value) { echo rtrim(substr($value,0,$trim_length)) . '(...)'; } ?> if ($value) { echo rtrim(substr($value,0,$trim_length)) . '(...)'; } ?> if ($value) { echo rtrim(substr($value,0,$trim_length)) . '(...)'; } ?> Но это делает «(…)» в конце каждого текста из настраиваемого поля.

Спасибо!

ОБЪЯВЛЕНИЕ

Solutions Collecting From Web of "обрезать настраиваемое текстовое значение поля и показать (…)"

на основе ответа на кеш вам нужно только обрезать, если его дольше 25 символов:

 $trim_length = 25; //desired length of text to display $custom_field = 'my-custom-field-name'; $value = get_post_meta($post->ID, $custom_field, true); if ($value) { if (strlen($value) > $trim_length) $value = rtrim(substr($value,0,$trim_length)) .'(...)'; echo $value; } 

Попробуйте этот код.

Вы должны проверить, была ли строка обрезана. Если это так, длина равна $trim_length Итак, вы должны добавить '(…)' в конце

 <?php $trim_length = 25; //desired length of text to display $custom_field = 'my-custom-field-name'; $value = get_post_meta($post->ID, $custom_field, true); if ($value) { $trimmed_value= rtrim(substr($value,0,$trim_length)); if (strlen($trimmed_value) >= $trim_length) $trimmed_value .= " (...)"; echo $trimmed_value; } ?> 

Поскольку WordPress 3.3 для этого встроена функция: wp_trim_words (), которая принимает в качестве аргументов количество слов и целую цепочку, добавляя, если обрезается.

Таким образом, вы можете сделать что-то вроде:

  <?php $trim_length = 25; //desired length of text to display $value_more = '(...)'; // what to add at the end of the trimmed text $custom_field = 'my-custom-field-name'; $value = get_post_meta($post->ID, $custom_field, true); if ($value) { echo wp_trim_words( $value, $trim_length, $value_more); } ?>