MENU

the_excerpt()

the_excerpt() は、投稿の要約(抜粋)を表示するテンプレートタグです。このタグは、WordPressで各投稿の概要を短く伝える際に使用されます。テーマのアーカイブページ、検索結果、カテゴリーページなどでよく使われます。

目次

機能の説明

the_excerpt() は、投稿の要約を表示します。要約は以下の方法で決まります:

  1. 投稿編集画面の「抜粋」欄に入力された内容
  2. 「抜粋」欄が空の場合、本文の最初の部分(デフォルトは55文字)が表示されます。
  3. 本文が長すぎる場合は、「[…]」(省略記号)が自動的に追加されます。

シンプルなコード例

<?php the_excerpt(); ?>

このコードで、現在の投稿の抜粋が表示されます。抜粋欄が空の場合は、投稿の冒頭部分が要約されて表示されます。

使い方の解説

the_excerpt() は、一覧ページや検索結果ページ、アーカイブページなどで投稿の内容を簡潔に伝えたいときに使います。

  1. 抜粋を手動で入力する方法:
    投稿の編集画面で「抜粋」欄に要約を記入します。
  2. 自動的に本文から要約を生成する場合:
    「抜粋」欄が空であれば、本文の最初の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

抜粋を自動生成ではなく手動で入力したい場合は?

投稿編集画面で「抜粋」欄に直接要約を入力してください。

抜粋の文字数を変更できますか?

はい、excerpt_length フィルターを使用して、任意の文字数に変更できます。

投稿の本文と抜粋のどちらを使えば良いですか?

要約が必要な場合(アーカイブページや検索結果ページ)には the_excerpt() を使用し、投稿の全文が必要な場合は the_content() を使用します。

まとめ

the_excerpt() は、WordPressで投稿の要約を表示するための重要なテンプレートタグです。アーカイブや検索結果ページでユーザーに素早く内容を伝えるために使用されます。get_the_excerpt()the_content() と組み合わせることで、柔軟な表示が可能です。

また、フィルターフックを利用して抜粋の文字数や「続きを読む」リンクを簡単にカスタマイズできるため、ユーザー体験の向上にも寄与します。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次