【问题标题】:Wordpress/PHP: Shorten title if title characters are more than 8 charactersWordpress/PHP:如果标题字符超过 8 个字符,则缩短标题
【发布时间】:2010-12-14 11:38:29
【问题描述】:

我正在尝试学习如何缩短超过 8 个字符的标题。如果超过 8 个字符,则回显前 8 个字符并在其后添加一个省略号。

这是我获得标题的方式:

<?php echo $post->post_title ?>

任何帮助将不胜感激。这对我来说将是一个很好的学习课程,因此我可以在将来复制它,所以任何帮助都会非常棒。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:
    <?php
    
        if (strlen($post->post_title) > 8)
           echo substr($post->post_title, 0, 8) . ' ...';
        else
           echo $post->post_title;
    
    ?>
    

    或者,如果您启用了mbstring 扩展,还有Gordon's answer 建议的更短的方法。如果帖子的编码是多字节的,则无论如何都需要使用mbstring,否则字符数会不正确。

    echo mb_strimwidth($post->title, 0, 8, ' ...');
    

    【讨论】:

    • 这看起来如此,美丽而优雅。太多了
    • @HollerTrain:最初我的回答中substr() 的参数顺序不正确。现在已经修好了。
    • 使用mb_strimwidth 有一个额外的好处,它可以为像这样的多字节字符产生正确的结果 âãäåæçèéêë。另请注意,我使用了实际的省略号 而不是三个点 ...
    【解决方案2】:

    您可以使用mb_strimwidth

    echo mb_strimwidth('Your Title', 0, 8, '…');
    

    如果您想截断单词边界,请参阅

    【讨论】:

      【解决方案3】:

      您应该在插件中执行此操作,因为如果您更改主题,更改将丢失

      【讨论】:

        【解决方案4】:

        你可以试试这个。

        $maxlength = 8;
        if (strlen($post->post_title) > $maxlength)
               echo substr($post->post_title, 0, $maxlength) . ' ...';
            else
               echo $post->post_title;
        

        所以现在您无需在所有代码行中更改 max char。

        谢谢。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-03-03
          • 2023-03-31
          • 2019-08-01
          • 2011-04-28
          • 1970-01-01
          • 2023-04-06
          • 1970-01-01
          相关资源
          最近更新 更多