wp_trim_words()
テキストを指定の文字数でトリミングする。
2023/10/22

投稿のタイトルや本文のテキストを冒頭の何文字かだけ切り取って表示させたい時に使える WordPressのテンプレートタグが wp_trim_words()
です。このコードは指定した文字列を任意の文字数でトリミングすることができ、切り取った文字列の末尾に文字を指定することも可能です。
使い方
wp_trim_words( $text, $num_words = 55, $more = null )
wp_trim_words('トリミングする文字列', '表示する文字数の上限', 'トリミングされた文字列の最後に追加する文字');
【返り値】トリミングされたテキスト。
パラメーター
-
$text(string)必須
トリミングするテキスト。
-
$num_words(int)オプション
表示させる文字数。
【初期値】 55
-
$more(string)オプション
$text でトリミングした文字列の後に追加する文字。
【初期値】 ‘…’
使用例
「表示させる文字数の上限」はデフォルトで55文字、「トリミングした文字列の後に追加する文字」は「…」です。この設定でよければトリミングする文字列を設定するだけで大丈夫です。
<?php
$content = get_the_content();
echo wp_trim_words($content);
?>
文字数を変更したい場合。以下のコードは100文字でトリミングします。
<?php
$content = get_the_content();
echo wp_trim_words($content, 100);
?>
末尾に表示されるテキストを変更する場合。以下のコードはトリミングする文字列が100字以上で、末尾に表示されるテキストを「…続きを見る」に設定。
<?php
$content = get_the_content();
echo wp_trim_words($content, 100, '...続きを見る');
?>
投稿ページへのリンク付きで抜粋表示する場合。以下のコードは「…続きを見る」のテキストに投稿のリンクが付きます。
<?php
$content = get_the_content();
$content = wp_trim_words( $content, 100,
sprintf('<a href="%s"> ...続きを見る</a>', get_permalink())
);
echo $content;
?>
詳細・注意事項
この機能はローカライズされていて、WordPressのサイト言語設定によって単語数で切り詰めるか文字数で切り詰めるかが変わります。
個々の文字が単語になる言語 (日本語含む東アジア言語など) の場合、$num_wordsの数値は「文字」で数えられ、英語のように単語ごとに区切りをつける場合は「単語」で数えられます。
例えばサイト言語を日本語に設定して場合「文字」というテキストで「2文字」、言語を英語に設定している場合「word」というテキストで「1単語」で数えられます。
言語設定を日本語にしていて指定した文字数が表示されない場合、 WP Multibyte Patch プラグインを導入していなければ追加してみてください。
プラグインの内容については下記記事が参考になります。