エントリーカードのタイトルの文字数を制限する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。


add_filter('cocoon_part__tmp/entry-card', function ($content) {
  $title = get_the_title();
  $max_length = 15;

  if (mb_strlen($title) <= $max_length) {
    return $content;
  }

  $trim_title = mb_substr($title, 0, $max_length) . get_entry_card_excerpt_more();

  return str_replace($title, $trim_title, $content);
});

参考:CSSのみで三点リーダー表示にする方法

文字数ではなく行数で制限し、超過分は三点リーダーで表示します。

1行で三点リーダー表示

.card-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

複数行で三点リーダー表示

複数行の場合、タイトルを表示する高さを定義する必要があります。

height = line-height × 行数(-webkit-line-clamp)

.card-title {
  display: -webkit-box;
  height: 3.2em;
  line-height: 1.6;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

さいごに

今回紹介した方法を使えば、カードタイトルの長さを調整し、統一感のあるデザインを実現できます。
PHPを使った文字数制限だけでなく、CSSのみで行数を制限する方法もあるので、用途に応じて選択してください。

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