Limit title length

时间:2019-07-25 作者:ncti

它几乎可以正常工作,但alwas返回相同的菜单名称:在主页上所有菜单元素名称homeon contact所有菜单元素名称contact

function max_title_length( $title ) {
    global $post;
    $id = ($post->ID);
    $title = get_post( $id )->post_title;
    $max = 20;
    if( strlen( $title ) > $max ) {
        return substr( $title, 0, $max ). " …";  
    }
    else {
        return $title;
    }
}
add_filter( \'the_title\', \'max_title_length\');

3 个回复
SO网友:Jacob Peattie

这是因为你没有正确使用过滤器。这个the_title 筛选器将要筛选的标题传递为$title 参数,但您正在使用以下代码覆盖它:

global $post;
$id = ($post->ID);
$title = get_post( $id )->post_title;
该代码完全没有必要,因为标题已在函数中可用:

function max_title_length( $title ) {
因此,只需删除这些行即可过滤正确的标题:

function max_title_length( $title ) {
    $max = 20;

    if ( strlen( $title ) > $max ) {
        return substr( $title, 0, $max ) . \' …\';  
    } else {
        return $title;
    }
}
add_filter( \'the_title\', \'max_title_length\' );
请注意—正如您所经历的那样—这个the_title 过滤器适用于所有标题,包括帖子、页面和菜单项。因此,如果您只想将代码应用于循环中输出的标题,可以使用in_the_loop() 功能:

function max_title_length( $title ) {
    $max = 20;

    if ( in_the_loop() && strlen( $title ) > $max ) {
        return substr( $title, 0, $max ) . \' …\';  
    } else {
        return $title;
    }
}
add_filter( \'the_title\', \'max_title_length\' );

SO网友:ncti

function max_title_length($title) {
    if(is_front_page()){
        $max = 8;  
    }
    elseif(is_single()){
        $max = 5;
    }
    else{
        $max = 15;
    }


    if (strlen( $title ) > $max ) {
        return substr( $title, 0, $max ) . \' …\';  
    } else {
        return $title;
    }
}
add_filter( \'the_title\', \'max_title_length\' );
它仍然会剪切菜单标题。in\\u\\u loop()函数不工作。

SO网友:DenFunk
function max_title_length( $title ) {    
    $max = 20;
    if ( strlen( $title ) > $max ) {
       $title = substr( $title, 0, $max ) . \' …\';  
    }
    return $title;
}
add_filter( \'the_title\', \'max_title_length\' );

相关推荐

how to add H1 in title site?

根据SEO检查员的说法,我的主页不包含H1标题。。。this code from developer source i taken from mozilla browser<title>interiordapur - Ahlinya Kitchen Set &amp; Desain Interior</title> I check source my website no H1 detected. and I check my theme header.php th