記事の抜粋を指定の文字数で取得する

NO IMAGE

今回はWordPressで記事本文の抜粋を取得する方法について説明します。

WordPressにはget_the_excerpt()という本文の抜粋を取得する関数があります。
この関数はデフォルトで110文字(マルチバイト文字)を取得し110文字を超えていたら最後に[…]を表示する設定になっています。

特にこだわりがなければこのまま使えばいいのですが、抜粋する文字数を変更したい場合もあると思います。
その場合は以下のコードで文字数を変更することが可能です。

コード

文字数を少なくしたい場合

<?php
// 70文字までの抜粋にして、超えている場合は最後に…を付与する
$content = get_the_excerpt();
$content_len = mb_strlen($content);
if ($content_len > 70) {
    $content = mb_substr($content, 0, 70);
    $content .= '…';
}

文字数を多くしたい場合

まず、functions.phpで抜粋する文字数を変更します。
抜粋したい文字数より少し多くしておく必要があります。

<?php
function twpp_change_excerpt_length( $length ) {
    return 200;
  }
add_filter( 'excerpt_length', 'twpp_change_excerpt_length', 999 );

そのあとは文字数を少なくする場合と同じです。

<?php
// 190文字までの抜粋にして、超えている場合は最後に…を付与する
$content = get_the_excerpt();
$content_len = mb_strlen($content);
if ($content_len > 190) {
    $content = mb_substr($content, 0, 190);
    $content .= '…';
}

参考

テンプレートタグ/get the excerpt - WordPress Codex 日本語版
記事の抜粋の長さや省略記号([…])を変更する | The WordPress Press