カスタムフィールドのテキストを文字数を制限して表示する方法

WordPreesのカスタムフィールドに入力されているテキストを、文字数を制限して表示する方法の備忘録です。

例えば、記事の一覧にカスタムフィールドのテキストを表示する際に、100文字に限定して超過してる場合は文末に「…」を表示します。

カスタムフィールドの値を表示する

初めに、カスタムフィールドの値を表示する箇所に以下のコードを記述します。

<?php echo post_custom('field_name'); ?>

post_custom()でカスタムフィールドの値を取得して、echoで表示するシンプルなコードです。

「field_name」の部分には、該当するカスタムフィールド名を設定します。

文字数を制限する

続いて、mb_substr()を使用して文字数制限を追加します。

<?php echo mb_substr((post_custom('field_name')),0,100); ?>

mb_substr()は、指定した開始位置から文字数分のテキストを取得する関数です。

サンプルコードでは、「100」を設定して先頭から100文字のテキストを取得しています。

条件分岐を追加する

最後に、テキストを省略した場合のみ文末に「…」を追加するように、ifを使用した条件分岐を追加します。

<?php
  $field_text = post_custom('field_name');
  $limit = 100;
  if (mb_strlen($field_text) >= $limit) {
    $field_text = mb_substr($field_text, 0, $limit) . '…';
  }
  echo $field_text;
?>

制限する文字数を$limitに設定して、mb_strlen()で取得した文字数と比較して条件分岐しています。

文字数が$limitに設定した数(サンプルでは100文字)より大きい場合のみ、文末に「…」を追加します。

以上で、カスタムフィールドのテキストを文字数制限をつけて表示するコードの完成です。

ACFを使用している場合

ACF(Advanced Custom Field)を使用して作成したカスタムフィールドの場合、get_field()を使用してテキストを表示します。

<?php
  $field_text = get_field('field_name');
  $limit = 100;
  if (mb_strlen($field_text) >= $limit) {
    $field_text = mb_substr(strip_tags($field_text), 0, $limit) . '…';
  }
  echo $field_text;
?>

表示するテキストはstrip_tags()を使用して不要なタグを除去しています。

Share on Twitter
関連記事
WordPressでカテゴリーを一覧表示する方法
WordPressでカテゴリーを一覧表示する方法
WordPress記事内の特定のコードを置換する方法
WordPress記事内の特定のコードを置換する方法
WordPressの人気記事(ランキング)をプラグインなしで表示する方法
WordPressの人気記事(ランキング)をプラグインなしで表示する方法