Shorten the title length

时间:2015-05-14 作者:Johann

所以我使用这个过滤器来缩短标题:

function the_titlesmall($before = \'\', $after = \'\', $echo = true, $length = false) { $title = get_the_title();

if ( $length && is_numeric($length) ) {
    $title = substr( $title, 0, $length );
}

if ( strlen($title)> 0 ) {
    $title = apply_filters(\'the_titlesmall\', $before . $title . $after, $before, $after);
    if ( $echo )
        echo $title;
    else
        return $title;
}
}
在我的模板中:

 <?php the_titlesmall(\'\', \'...\', true, \'50\') ?>
这很有魅力。

但是,此筛选器会添加“…”对于每个帖子标题,即使帖子标题少于50个字符并且看起来很奇怪。我怎样才能只添加“…”超过50个字符的标题?

非常感谢!

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

试试这个。首先检查原始字符串长度是否小于或等于传入长度,如果是,则忽略$after 参数:

function the_titlesmall($before = \'\', $after = \'\', $echo = true, $length = false) { $title = get_the_title();
    if( strlen($title) <= $length )
         $after = \'\';
    if ( $length && is_numeric($length) ) {
        $title = substr( $title, 0, $length );
    }

    if ( strlen($title)> 0 ) {
        $title = apply_filters(\'the_titlesmall\', $before . $title . $after, $before, $after);
        if ( $echo )
            echo $title;
        else
            return $title;
    }

}

SO网友:ambroseya

不要让它成为“after”变量,而是添加。。。切割子字符串的位置。首先检查字符串的长度,如果大于50,则添加。。。当您剪切子字符串时,在该行中。

结束

相关推荐

Search with filters and title

我想搜索custom_post 按标题和ACF字段。所以,我用了WP_Query WordPress函数,但我不能按标题过滤,只能按过滤器过滤。当我提交表单时,我有这样的URL:http://example.com/?s=titre&filter1=condition1&filter2=condition2&filter3=condition3 我的代码:$title = $_GET[\'s\']; $args = array( \'pagenam