【WP】本文を文字数制限して取得し不要なコードを取り除く方法

【WP】本文を文字数制限して取得し不要なコードを取り除く方法

WordPress

皆さん、こんにちは!

WordPressの関数で「get_the_excerpt()」という抜粋文を取得する関数があります。

でもこれは投稿編集画面の「抜粋文」という項目を記述しないと使い物になりません。

面倒くさい。。。

なので今回は本文を任意の文字数で取得する方法を紹介します!

投稿本文を任意の文字数で取得する方法

get_the_content()」関数を使ってPHPで文字数制限をかけて取得すればいいだけだと思ってやってみると、ショートコードや画像などのプレーンテキスト以外のもの取得してしまいます。

まあビジュアルエディタに書いたものを取得するので当たり前なのですが。。。

なのでただのテキストとして取得したい場合は下記のコードを「functions.php」に記述して関数として活用することにしました。

function get_my_excerpt($content, $length)
{
    $length = ($length ? $length : 70);
    $content =  preg_replace('/<!--more-->.+/is', "", $content);
    $content =  strip_shortcodes($content);
    $content =  strip_tags($content);
    $content =  str_replace("&nbsp;", "", $content);
    $content =  mb_substr($content, 0, $length);
    return $content;
}

上記でしているのは、

  1. デフォルトで取得する文字数を定義
  2. 続きを読むを消去
  3. ショートコードを消去
  4. HTMLタグを消去
  5. 空白を消去
  6. 指定した文字数に切り取り

です。

使用方法はこの関数を使いたい箇所で、

<p>
<?php echo get_the_custom_excerpt(get_the_content(), 120); ?>
</p>

と記述します。

これで120文字の抜粋文が出力できます!

 

他にもWordPressの情報を投稿しているので合わせて活用下さい!