0

这是我用来在我的 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 } 
    }

}
4

1 回答 1

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 手册页

于 2013-07-18T06:13:26.403 回答