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抜粋がピリオドで終わるように編集するにはどうすればよいですか? たとえば、抜粋は、「彼女は愛らしくて無邪気な魅力を持っているので、人々が彼女のことを気にかけてくれる」ではなく、「彼女は愛らしくて無邪気な魅力を持っています」のように終わります。抜粋は、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 に答える