WordPressのコメント本文を改行あり/文字数制限で出力する方法

投稿日:2022/09/13 最終更新日:2022/09/13

WordPressのコメント本文を改行あり/文字数制限で出力する方法

コメント本文を折り返しあり/文字数制限で出力したい

結構ややこしいですがちゃんと実装できます。

まず、コメント本文を出力するテンプレート関数はcomment_text()ですがこの場合文字数制限が効きません。

そのため、get_the_comment()でテキストのみをしてみると文字数制限がかけられても改行がなくなります。

この2つを上手く有効にする方法はないか探してみましたので紹介します。

解決方法

mb_strimwidth関数とapply_filters関数を併用する

<?php echo mb_strimwidth(apply_filters('comment_text', get_comment_text(), get_comment($comment_ID), []),0, 制限文字数, '…') ?>

まず、apply_filters関数は指定したフィルターイベントを実行する関数です。平たく言えばデータを加工する関数を作れます。

そこで、第1引数にイベント名(=comment_text)、第2引数にフィルターの対象(=get_comment_text())とします。

※comment_text関数でもいいようです

そして、取得したテキスト情報をmb_strimwidth関数で文字数制限させるということです。

mb_strimwidth関数の第1引数は制限対象、第2引数は調節する文字列位置の開始部分、第3引数は調節する文字列の幅を指定します。

こうすると文字数制限もかけられるし、ちゃんと折り返しも反映されていますので試してみてください。