基于两个变量的组合字符截断文本

时间:2012-08-14 16:10:11

标签: php wordpress function truncate

我正在使用自定义函数根据一个参数来截断文本,该参数说明了允许的字符数。这是我的代码:

function bm_best_excerpt($length, $ellipsis, $content) {
$text = $content;
$text = strip_tags($text);
$text = substr($text, 0, $length);
$text = substr($text, 0, strripos($text, " "));
$text = $text.$ellipsis;
return $text;
}

在任何页面上,我可以通过抓取Wordpress自定义字段(包含一串文本)并通过此函数运行它来截断文本,如下所示:

<?php $excerpt = get_field('long_description'); ?>
<p><?php echo bm_best_excerpt(70, ' ... ', $excerpt); ?></p>

效果很好,显示$excerpt的前70个字符。我想修改此函数,因此它首先计算标题中的字符数(在描述上方),然后使用任何剩余字符进行此描述。

为了说明这一点,假设我想允许总共80个字符。我的RAW HTML如下:

这是一个相当长的标题

这是一个描述,然后是一些Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。

我希望标题和描述之间的总字符数为80.标题有35个字符,剩下45个字符用于描述。

如何修改上述函数以允许计算附加内容变量(作为参数),然后对$length进行减法?我希望函数看起来像这样:

function bm_best_excerpt($length, $ellipsis, $content1, $content2) {

其中$content1是标题,$content2是说明

1 个答案:

答案 0 :(得分:0)

尝试将这些字符串添加到一起并作为一个处理:

function bm_best_excerpt($length, $ellipsis, $content, $content2='') {
    // default content2 to empty string, allowing use of old method to still be valid
    $text = $content.' '.$content2; // add the second content to the end of the first