Ajustar o valor do texto do campo personalizado e mostrar (…)

Estou usando este código aqui:

ID, $custom_field, true); if ($value) { echo rtrim(substr($value,0,$trim_length)); } ?> 

Funciona – mas eu gostaria de ter um “(…)” no final do texto aparado. E somente se o valor realmente foi cortado.

Eu usei 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)) . '(...)'; } ?> Mas isso faz com que o “(…)” no final de cada texto do campo personalizado.

Obrigado!

DE ANÚNCIOS

Solutions Collecting From Web of "Ajustar o valor do texto do campo personalizado e mostrar (…)"

Com base na resposta da keatch, você só precisa cortar se há mais os 25 caracteres:

 $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; } 

Tente este código.

Você deve verificar se a corda foi cortada. Se for, o comprimento é $trim_length Então, você deve adicionar o ‘(…)’ no final

 < ?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; } ?> 

Uma vez que o WordPress 3.3 existe uma function incorporada para isso: wp_trim_words () que aceita como argumentos o número de palavras e a cadeia de adicionar se aparado.

Então você poderia fazer algo como:

  < ?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); } ?>