【WordPress】タイトル・本文・抜粋の文字数を制限する方法

WordPressの投稿やページで、タイトル、本文、抜粋の文字数を制限することは、見た目の整ったコンテンツを維持するために重要です。ここでは、これらの要素の文字数を制限する方法を紹介します。

スポンサーリンク

タイトルの文字数制限

WordPressのデフォルトでは、タイトルの文字数に制限が設けられていません。しかし、カスタムコードを追加することで、タイトルの表示文字数を制限することができます。以下の手順で、タイトルの最大文字数を設定する方法を見てみましょう。

// タイトルの最大文字数を制限する
function limit_title_length($title) {
    $max_length = 50; // 最大文字数を設定
    if (mb_strlen($title) > $max_length) {
        $title = mb_substr($title, 0, $max_length) . '...';
    }
    return $title;
}
add_filter('the_title', 'limit_title_length');

このコードでは、タイトルが50文字を超えた場合に「…」を追加して切り捨てます。

本文の文字数制限

投稿やページの本文が長すぎると、表示が乱れることがあります。以下のコードをfunctions.phpに追加することで、本文の最大文字数を制限できます。

// 本文の最大文字数を制限する
function limit_content_length($content) {
    $max_length = 100; // 最大文字数を設定
    if (mb_strlen($content) > $max_length) {
        $content = mb_substr($content, 0, $max_length) . '...';
    }
    return $content;
}
add_filter('the_content', 'limit_content_length');

このコードは、本文が100文字を超えた場合に「…」を追加して切り捨てます。

抜粋(エクササイズ)の文字数制限

抜粋の文字数は、検索結果やアーカイブページでの表示に影響します。以下のコードをfunctions.phpに追加することで、抜粋の最大文字数を設定できます。

// 抜粋の最大文字数を制限する
function custom_excerpt_length($length) {
    return 20; // 抜粋の最大文字数を設定
}
add_filter('excerpt_length', 'custom_excerpt_length');

また、抜粋の末尾に「…」を追加するには、以下のコードも追加します。

// 抜粋の末尾に「...」を追加する
function custom_excerpt_more($more) {
    return '...';
}
add_filter('excerpt_more', 'custom_excerpt_more');

テーマやプラグインでの設定

一部のテーマやプラグインでは、設定画面からタイトル、本文、抜粋の文字数制限を行うことができます。テーマのカスタマイザーやプラグインの設定ページを確認し、適切な設定が可能かどうか確認してみましょう。

よくある質問(FAQ)

Q. WordPressのループで記事タイトルを指定文字数で切り詰めるには?
A. mb_substr(get_the_title(), 0, 30) . ‘…’のようにmb_substrを使います。または wp_trim_words()は単語単位での切り詰めに対応していますが、日本語には不向きのためmb_substr推奨です。
Q. 記事の抜粋(excerpt)を任意の文字数に制限するには?
A. excerpt_lengthフィルターで文字数、excerpt_moreフィルターで末尾の文字列を変更できます。または the_excerpt()を使わずget_the_content()からmb_substrで切り詰める方法もあります。
Q. 記事内の画像を最初の1枚だけ表示するには?
A. get_the_content()で本文取得後、preg_match(‘/]+>/’, $content, $matches)で最初のimgタグを抽出します。または has_post_thumbnail()でアイキャッチを優先し、なければ本文から抽出するという処理が一般的です。

まとめ

WordPressでタイトル、本文、抜粋の文字数を制限することで、コンテンツの見栄えを良くし、サイト全体の整合性を保つことができます。カスタムコードを使ってこれらの制限を設定する方法を試してみてください。