説明
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

コメント