wp_trim_words() の使い方|説明・引数・注意点

説明

wp_trim_words() は、文字列を、指定した語数(日本語では文字数)で切り詰める関数です。

基本構文

wp_trim_words( string $text, int $num_words = 55, string $more = null ): string

引数

  • $text:対象の文字列
  • $num_words:残す語数
  • $more:切り詰めたときの末尾(既定は…)

戻り値

切り詰めた文字列。

使い方(サンプル)

echo esc_html( wp_trim_words( get_the_excerpt(), 40, '…' ) );

注意点

  • サイトの言語が日本語(UTF-8)なら、文字数でカウントされるため、日本語でも使える。言語設定が英語のままだと、単語数(空白区切り)で数えるため、日本語は切れない。
  • HTMLタグは取り除かれます。

実務での使いどころ

  • 本文から、指定した長さの、抜粋(要約)を作るとき。
  • 一覧のカードに、本文の冒頭を、短く出すとき。

よくあるミスと対処

  • 日本語のサイトで、「単語数」で数えると思っている。日本語の環境では、文字数で数える(空白を除く)。
  • HTMLタグが、取り除かれることを、考えていない。タグを残したい場合には、使えない。
  • 出力時の、エスケープを省いている。

NG例

echo wp_trim_words( get_the_content(), 80 ); // ショートコードが、そのまま残り、エスケープもない

OK例

echo esc_html( wp_trim_words( wp_strip_all_tags( strip_shortcodes( get_the_content() ) ), 80, '…' ) );

使い分け早見表

関数 特徴
wp_trim_words() 指定した長さに、切り詰める
get_the_excerpt() 抜粋(未入力なら自動生成)を取得する
wp_strip_all_tags() タグを、すべて取り除く

関連項目

mb_substr()、get_the_excerpt()

公式リファレンス:wp_trim_words() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました