裁切自定义字段文本值并显示(...)

时间:2012-07-14 作者:ad2003

我在这里使用此代码:

<?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)) . \'(...)\'; } ?>但这使得“(…)”在自定义字段中的每个文本末尾。。

非常感谢。

公元

3 个回复
最合适的回答,由SO网友:Bainternet 整理而成

根据keatch的回答,如果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;
}

SO网友:keatch

请尝试此代码。

必须检查字符串是否已修剪。如果是,则长度为$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;
}
?>

SO网友:Simon

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

结束

相关推荐