Wordpress Titles: If Longer Than 50 Characters, Show Ellipsis

前端 未结 9 1313
谎友^
谎友^ 2021-02-01 19:06

I have a wordpress site with titles, and if the title has more than 50 characters I need to add an ellipsis (...) at the end of the title and stop the title at 50 characters. Be

相关标签:
9条回答
  • 2021-02-01 19:20

    Add this to your "functions.php" file in your theme folder....

    function the_title_excerpt($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_title_excerpt', $before . $title . $after, $before, $after);
            if ( $echo )
                echo $title;
            else
                return $title;
        }
    }
    

    then call the title like as follows

    <?php the_title_excerpt('', '...', true, '50'); ?>
    
    0 讨论(0)
  • 2021-02-01 19:22

    Single Code, 100% working

    PHP Function mb_strimwidth() | Wordpress Function get_the_title()

    <?php 
    echo mb_strimwidth( get_the_title(), 0, 100, '...' ); 
    ?>
    
    0 讨论(0)
  • 2021-02-01 19:28
    <?php 
    $title  = the_title('','',false);
    if(strlen($title) > 60):
        echo trim(substr($title, 0, 65)).'...';
    else:
        echo $title;
    endif;
    ?>
    
    0 讨论(0)
  • 2021-02-01 19:30

    The mb_strimwidth function does exactly that.

    echo mb_strimwidth(get_the_title(), 0, 50, '...');
    
    0 讨论(0)
  • 2021-02-01 19:32

    Take the_title() out of quotes when using the strlen() function.

    0 讨论(0)
  • 2021-02-01 19:33

    You're checking the length of the string "the_title()". Remove the quotes, and it will probably work (I'm not 100% sure of the difference between the_title() and get_the_title(), as I haven't used Wordpress in a while -- you might have to switch that around too):

    <?php if (strlen(the_title()) > 50) { ?>
                    <?php the_title(); ?>
                <?php } if (strlen(the_title()) < 50) { ?>
                    <?php echo substr(get_the_title(), 0, 50); ?>...
                <?php } ?>   
    

    or maybe

    <?php if (strlen(get_the_title()) > 50) { ?>
                    <?php the_title(); ?>
                <?php } if (strlen(get_the_title()) < 50) { ?>
                    <?php echo substr(get_the_title(), 0, 50); ?>...
                <?php } ?>   
    
    0 讨论(0)
提交回复
热议问题