the_excerpt()
は、投稿の要約(抜粋)を表示するテンプレートタグです。このタグは、WordPressで各投稿の概要を短く伝える際に使用されます。テーマのアーカイブページ、検索結果、カテゴリーページなどでよく使われます。
機能の説明
the_excerpt()
は、投稿の要約を表示します。要約は以下の方法で決まります:
- 投稿編集画面の「抜粋」欄に入力された内容
- 「抜粋」欄が空の場合、本文の最初の部分(デフォルトは55文字)が表示されます。
- 本文が長すぎる場合は、「[…]」(省略記号)が自動的に追加されます。
シンプルなコード例
<?php the_excerpt(); ?>
このコードで、現在の投稿の抜粋が表示されます。抜粋欄が空の場合は、投稿の冒頭部分が要約されて表示されます。
使い方の解説
the_excerpt()
は、一覧ページや検索結果ページ、アーカイブページなどで投稿の内容を簡潔に伝えたいときに使います。
- 抜粋を手動で入力する方法:
投稿の編集画面で「抜粋」欄に要約を記入します。 - 自動的に本文から要約を生成する場合:
「抜粋」欄が空であれば、本文の最初の55文字が自動的に表示されます。
アーカイブページで投稿の抜粋を表示する例
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
<?php endwhile; endif; ?>
have_posts()
とthe_post()
: 投稿がある間、ループを実行します。the_title()
: 投稿のタイトルを表示します。the_excerpt()
: 各投稿の要約を表示します。
一緒に使うことが多い関連タグ
get_the_excerpt()
get_the_excerpt()
は、投稿の抜粋を取得する関数です。the_excerpt()
は直接表示するのに対して、get_the_excerpt()
は返り値として取得できるため、カスタムHTML内で使うときに便利です。
<?php echo '<p class="summary">' . get_the_excerpt() . '</p>'; ?>
get_the_excerpt()
で取得した要約を <p>
タグ内に表示します。
the_content()
the_content()
は、投稿の本文を表示する関数です。要約ではなく全文を表示したい場合に使います。
<?php the_content(); ?>
the_excerpt_rss()
the_excerpt_rss()
は、RSSフィードに投稿の要約を表示するためのタグです。
<?php the_excerpt_rss(); ?>
追加情報を取得したい場合
抜粋の文字数をカスタマイズする
デフォルトでは抜粋は55文字ですが、フィルターを使って変更することができます。
function custom_excerpt_length($length) {
return 100; // 抜粋の文字数を100文字に設定
}
add_filter('excerpt_length', 'custom_excerpt_length');
excerpt_length
フィルターを使って、抜粋の文字数を100文字に変更しています。
get_the_title()
で取得できる情報
<?php echo get_the_title(); ?>
- name: 投稿のタイトル
- slug: 投稿のスラッグ(URLフレンドリーな名前)
- ID: 投稿のID
想定されるトラブル
抜粋にHTMLタグが表示されない
the_excerpt()
はHTMLタグを自動的に削除します。
解決策
get_the_excerpt()
を使い、wp_kses_post()
関数で特定のHTMLタグを許可します。
<?php echo wp_kses_post(get_the_excerpt()); ?>
自動生成された抜粋が途中で切れてしまう
デフォルトの文字数制限で本文が途中で切れ、意味が通じなくなることがあります。
解決策
excerpt_more
フィルターで「続きを読む」のリンクを追加します。
function new_excerpt_more($more) {
return '... <a href="' . get_permalink() . '">続きを読む</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
Q&A
まとめ
the_excerpt()
は、WordPressで投稿の要約を表示するための重要なテンプレートタグです。アーカイブや検索結果ページでユーザーに素早く内容を伝えるために使用されます。get_the_excerpt()
や the_content()
と組み合わせることで、柔軟な表示が可能です。
また、フィルターフックを利用して抜粋の文字数や「続きを読む」リンクを簡単にカスタマイズできるため、ユーザー体験の向上にも寄与します。
コメント