記事の冒頭で投稿の「抜粋」を適切に設定しておけば、ブログ一覧やアーカイブで記事が長すぎてデザインが崩れることがなくなります。WordPressでは抜粋の文字数や単語数を柔軟に制限でき、さらに末尾表記や条件に応じた制限も可能です。この記事では、抜粋(Excerpt)の仕組みから実際の設定方法までを丁寧に解説します。
読み終わる頃にはどのテーマでも抜粋文字数を自在にコントロールできるようになります。
WordPress 抜粋 文字数 制限の基本を理解する
WordPressの抜粋とは、投稿やページの内容の要約部分で、一覧表示・検索結果・RSSなどで使われます。抜粋が手動で入力されていない場合、自動生成され、既定で表示される文字数または単語数の制限があります。
抜粋の文字数制限を理解することで、レイアウト崩れの防止や読みたくなる導入文の設計が可能となります。
最新の仕様では、自動抜粋は最初の55単語がデフォルトで使われ、その末尾には「[…]」が付加されます。抜粋を手動で入力すればその限りではありません。テーマや設定によって自動抜粋の挙動(単語数・省略文字・HTMLタグの扱いなど)は異なるため、それらの仕様を把握することが大切です。
抜粋とは何か
抜粋は投稿またはページの要約部分です。手動で入力された抜粋がある場合はそれが優先されます。何も入力されていない場合には本文から自動で要約が生成されます。自動生成では単語数制限・HTMLタグの除去・省略記号の挿入などが行われます。
WordPressのデフォルトの抜粋制限
自動抜粋のデフォルト単語数は55語です。これはテーマが特別に変更していない限り有効です。自動抜粋の場合、省略文字はデフォルトで「[…]」となります。HTMLタグは基本的に除かれる仕様です。これらはフィルターフックで変更可能です。
抜粋がデザインに与える影響
長い抜粋は一覧やカード型レイアウトで要素の高さを不揃いにしたり、ページ全体のバランスを崩したりします。逆に抜粋が短すぎると内容を伝えられず、ユーザーの興味を引けません。適切な文字数・単語数の制限を使い分けて、デザインと可読性を両立することが重要です。
抜粋の文字数制限を変更する具体的な手順
具体的に文字数・単語数を制限する方法には、テーマのfunctions.phpにコードを追加する方法とブロックテーマや編集画面側で設定する方法があります。どちらも設定すれば抜粋表示の一貫性を保ち、望むレイアウトを実現できます。
まずはテーマファイル編集権限があるか、子テーマまたはカスタムテーマを使っているかを確認してください。テーマ更新で上書きされないよう子テーマが望ましいです。次にPHPコードで制限する例と編集画面での設定例をそれぞれ紹介します。
functions.phpで単語数を制限するコード例
テーマのfunctions.phpに以下のようなフィルターを追加すると、自動抜粋の単語数を任意に変更できます。例として30語とした場合:
<?php
function custom_excerpt_length( $length ) {
return 30;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
?>
上記の999はフィルターの優先度です。テーマ側・プラグイン側で同じフィルターが設定されている場合、この優先度が高いことで意図した値が反映されやすくなります。単語数だけでなく、省略記号(excerpt_more)も変更可能です。
文字数(文字数ベース)で制限する方法
単語数ではなく**文字数ベース**で抜粋を制限したい場合、substr関数などを用いて制御するコードを使います。以下のような例があります:
<?php
function excerpt_char_limit( $char_limit ) {
$excerpt = get_the_excerpt();
$excerpt = strip_tags( $excerpt );
if ( mb_strlen( $excerpt ) > $char_limit ) {
$excerpt = mb_substr( $excerpt, 0, $char_limit ) . '…';
}
echo $excerpt;
}
?>
このように文字数で切ることで見た目を揃えやすくなり、カード型デザインなどで特に有効です。ただしマルチバイト文字(日本語など)で文字幅が異なることを考慮し、mb_strlenとmb_substrを用いるのが安全です。
編集画面での抜粋入力とテーマ側の設定利用
投稿編集画面のサイドバーに抜粋欄があり、そちらに任意の要約文を記述できます。手動で入力すれば自動設定は無視されます。またブロックテーマでクエリー・ループ・ポスト抜粋ブロックが使われている場合、ブロック設定で表示長(単語数)が指定できることがあります。
テーマカスタマイザーやテーマオプションで抜粋の長さを調整できるケースもあります。特に一覧やカード型表示に使われるテンプレートでは、これらの設定を見ておくと簡単に制限できる場合があります。
状況に応じた抜粋制限の応用例
WordPressを使うサイトでは、フロントページ・アーカイブ・カテゴリーごと・投稿タイプごとに抜粋制限を変えることで、デザインと読みやすさを最適化できます。ここでは代表的な応用例とそのコードや設定方法を紹介します。
異なる表示部分で抜粋を異なる長さにしたり、場合によってはタイトル抜粋も同様に制限するなど、柔軟に対応する方法を抑えるとサイト全体の統一感が増します。
フロントページとアーカイブで抜粋を変える
フロントページでは短めの抜粋、アーカイブページではやや長めを使うと見栄えが良くなります。以下はそのような条件分岐のコード例です:
<?php
function conditional_excerpt_length( $length ) {
if ( is_front_page() ) {
return 20;
} elseif ( is_archive() ) {
return 40;
}
return $length;
}
add_filter( 'excerpt_length', 'conditional_excerpt_length', 999 );
?>
このように分岐を実装することで、ページ毎のレイアウトに応じて抜粋文字数を変えられます。見た目のバランスを細かく調整する目的に適しています。
投稿タイプ別に制限を設定する
標準投稿以外にカスタム投稿タイプがある場合、それぞれで抜粋の長さを変えることが可能です。たとえば「ニュース」タイプでは短め、「ブログ」タイプではやや長めという設定にするなど、コンテンツ内容に合わせて制限を設けます。
カスタム投稿タイプの中で単語数フィルターを条件によって使い分ければ、読む人の期待値にもマッチする表示ができます。加えて、テーマテンプレートごとに異なるテンプレートファイルを用意する方法もあります。
省略記号(…)や文末の表記を変更する
単語数や文字数を制限するだけでなく、抜粋の末尾に付ける記号(省略記号)を変更することで印象が変わります。デフォルトでは「[…]」や「…」ですが、リンク付き省略や表記の変更も可能です。
例として、以下のようなフィルターで省略記号をカスタマイズします:
<?php
function custom_excerpt_more( $more ) {
return '… 続きを読む';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
?>
注意点とよくあるトラブル対応
抜粋文字数を制限する際には、文字化け・タグの不正表示・テーマ機能の無効化などの問題が生じることがあります。これらを回避するための注意点と、よくあるトラブルの解決策をまとめます。
正しく設定しても意図した抜粋が表示されないテーマもあります。それはテーマが別の方法で抜粋を生成していたり、ブロックテーマでブロック設定が優先されていたりするためです。それぞれ確認して適切に対処しましょう。
テーマが既に抜粋制限を持っている場合
使用中のテーマによっては、functions.php内で抜粋長がデフォルトとは異なる設定になっていたり、専用の設定画面があって抜粋長を制御できたりします。その場合はテーマが提供する設定を探すことが先行します。子テーマやカスタムCSSでは修正できないこともあります。
マルチバイト文字やHTMLタグの扱い
日本語などマルチバイト文字を使うサイトでは、文字数制限時に文字化けや途中切れが生じることがあります。mb_strlen/mb_substrなどを使うことで文字単位で正しい切り出しができます。HTMLタグが残ると構造が壊れることがあるので、strip_tagsなどで除去するのが安全です。
ブロックテーマと投稿抜粋ブロックの優先順位
最新のテーマでは投稿抜粋ブロックやクエリー・ループ内の抜粋設定があり、PHPフィルターよりもそちらが優先されるケースがあります。編集画面でブロックを選択し、「抜粋の長さ」の設定を確認し、それが意図通りになっていない場合はそちらを調整してください。
SEOへの影響と検索結果での表示
抜粋が自動で生成された場合、SEOでのスニペット候補として使われる可能性があります。内容が不明瞭であったりキーワードが適切に含まれていなかったりすると、検索結果でのクリック率に悪影響を及ぼすことがあります。手動で抜粋を書いたり、全文でなく要点を含めるように意図して制限することが望ましいです。
抜粋制限の比較:単語数 vs 文字数
単語数ベースで制限する方法と文字数ベースで制限する方法にはそれぞれメリットとデメリットがあります。デザインや読みやすさを踏まえて、どちらを使うかを比較検討することが重要です。
- 単語数制限はワード数が基準なので内容の切れ目が自然になりやすい。
- 文字数制限は見た目の幅・高さを正確に揃えたいときに有効。
- 単語数だとスペースや文末の改行により見た目が不揃いになることがある。
- 文字数だと半角/全角で幅が変わりやすく、保証されないフォント幅だとレイアウト崩れの原因になりうる。
| 比較項目 | 単語数ベース | 文字数ベース |
| 自然な切れ目 | 強い | やや弱い |
| 表示高さの統一性 | 揺れが出る可能性あり | 高い |
| 日本語コンテンツでの表現 | 単語の定義があいまいになりやすい | 文字で数えるため精確 |
| 実装の簡易さ | WordPressフィルターで簡単に設定できる | カスタム関数との併用が必要になることが多い |
まとめ
抜粋文字数を制限することで、サイト全体のデザインが整い、ユーザーエクスペリエンスも向上します。単語数ベースと文字数ベースの制限方法を理解し、テーマの仕様や編集画面の設定、テンプレートや投稿タイプの違いを考慮して使い分けることが鍵です。
自動抜粋の既定値や省略記号の設定も把握して、必要に応じてカスタマイズしてください。正しく設定すれば一覧表示が統一され、検索結果での印象も良くなります。
コメント