我在这里使用此代码:
<?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)) . \'(...)\';
}
?>
但这使得“(…)”在自定义字段中的每个文本末尾。。
非常感谢。
公元
最合适的回答,由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);
}
?>