【问题标题】:mb_substr cutting off words in post excerpt?mb_substr 截断帖子摘录中的单词?
【发布时间】:2013-07-18 00:27:08
【问题描述】:

这是我用来在我的 wordpress 帖子摘录中显示 html 格式的代码:

 function get_excerpt($post, $ln){
        if (!empty($post->post_excerpt)) {
            if (strlen($post->post_excerpt) > $ln) {
                echo mb_substr(($post->post_excerpt), 0, $ln);
            } 
        } else {
            if (strlen($post->post_content) > $ln) {
                  echo mb_substr(($post->post_content), 0, $ln);
            } 
        }

    }

如何编辑mb_substr 以使摘录以句号结束?例如,一段摘录的结尾会是“她有一种可爱而纯真的魅力 tha”,而不是“她有一种可爱而纯真的魅力,让人们关心她”。我希望摘录结束句子并以句号结束,而不是仅在字符限制处停止,字符限制设置为 800。在代码中 $ln 设置为 800。

更新:

这是我最终使用的代码。摘录中的单词仍然被截断,但我在末尾添加了一个带点的阅读更多链接。

 function get_excerpt($post, $ln){
    if (!empty($post->post_excerpt)) {
        if (strlen($post->post_excerpt) > $ln) {
            echo mb_substr(($post->post_excerpt), 0, $ln) . '...'; ?> <a href="<?php echo get_permalink( $post -> ID )?>">[Read More]</a>
 <?php } 
    } else {
        if (strlen($post->post_content) > $ln) {
              echo mb_substr(($post->post_content), 0, $ln) . '...';?> <a href="<?php echo get_permalink( $post -> ID )?>">[Read More]</a>
 <?php } 
    }

}

【问题讨论】:

    标签: php html wordpress post format


    【解决方案1】:

    如果你能保证会有一个“.”在您的文本中,您可以这样做:

    echo strtok("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet egestas lacus. Maecenas posuere dolor vitae ultrices viverra.",".");
    

    这将输出:“Lorem ipsum dolor sit amet, consectetur adipiscing elit”

    strtok manual page

    【讨论】:

    • 每个摘录都说不同的东西,所以我不知道什么时候会有句号,但每个摘录都有多个句子。有一个不同字符限制的句点。我希望我可以操纵 mb_substr 在摘录的末尾添加一个“... [阅读更多]”,然后阅读更多将具有摘录的永久链接。在单词中间截掉摘录看起来很糟糕。
    • 但是你保证所有的摘录都至少有一个“.”?从技术上讲,由于我刚刚检查过并且您确实指定您仍想使用 mb_substr 但这会起作用,因此没有回答原始问题:$excerpt = strtok($post-&gt;post_excerpt, ".");$excerpt .= '...&lt;a href="'.the_permalink().'"&gt;[Read More]&lt;/a&gt;';
    • 但是你保证所有的摘录都至少有一个“.”?是的,至少有一个“。”在每一个摘录中。那么如何使 mb_substr 以特定的“。”结尾。例如,如果每个摘录都有 5 个句点,我该如何在第二个句点结束摘录?
    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2020-08-02
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多