- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
テンプレートタグ/the excerpt
目次
説明
このテンプレートタグ the_excerpt()
は、現在の投稿の抜粋を、文末に [...](角括弧+三点リーダー)をつけて表示します。この三点リーダーは「続きを読む」リンクではありません。投稿作成/編集画面 の抜粋文入力欄に記入してあればそれを、抜粋を入力していない場合は投稿内容の最初の 55個の単語までを表示します(注)。また、抜粋のコンテンツからは HTML タグと画像は取り除かれます。このタグはループ内でのみ使えます。
現在の投稿が attachment.php および image.php テンプレートループ内の attachment/en の場合、attachment のキャプションを表示します。キャプションには、抜粋の [...] 記号は含まれません。
(注) 日本語のように語句の間を半角スペースで区切らない言語では「55単語」を判定できないため、抜粋できずに本文のほとんどが出力されてしまうことがあります。
WordPress 日本語版では、この問題を含むマルチバイト関連の問題に対処するために WP Multibyte Patch プラグインを同梱しています。このプラグインを使用すると、110文字まで(設定により変更可)を抜粋文として出力できます。
the_excerpt() と the_content()
あえて the_content() 関数を使うことに意味がある場合があります。 the_content() は、投稿本文内に <!--more--> タグが使用されているかどうかによって表示内容が変わります。<!--more--> タグは、挿入した位置で本文を 2つに分け、メインブログページやアーカイブといったリスト形式のページではこのタグより前の本文のみを表示します。個別投稿/ページでは <!--more--> は(もちろん)無視され、本文全てを表示します。
使い方
<?php the_excerpt(); ?>
パラメータ
このタグはパラメータをとりません。
用例
初期設定での使用
投稿の抜粋を表示します。個別投稿を表示する時以外に the_content() の代わりにループ内で強制的に抜粋を表示するときに使用します。
<?php the_excerpt(); ?>
条件分岐タグとの使用
アーカイブページおよびカテゴリーページ表示(is_archive()
で判定)時に、the_content()
タグの替わりに the_excerpt()
を用いて抜粋文を表示する例です。
次の例は、WordPress バージョン 1.5 以上で動作します。
<?php if ( is_archive() ) { the_excerpt(); } else { the_content(); } ?>
1.5 より前のバージョンでは以下のコードで動作します。
<?php if ( $cat || $m ) { the_excerpt(); } else { the_content(); } ?>
フィルターで抜粋の長さの変更
デフォルトでは、抜粋の長さは 55 単語です(日本語の場合は冒頭の注参照)。excerpt_length/en フィルターを使用して長さを変更するには、テーマの functions.php
ファイルに以下のコードを追加します。
function new_excerpt_length($length) { return 20; } add_filter('excerpt_length', 'new_excerpt_length');
フィルターで [...] 文字列の変更・削除
バージョン 2.9 以降のみ
デフォルトでは、抜粋の最後の文字列は '[...]' になっています。excerpt_more/en フィルターを使用して文字列を変更するには、テーマの functions.php
ファイルに以下のコードを追加します。
function new_excerpt_more($more) { return '[.....]'; } add_filter('excerpt_more', 'new_excerpt_more');
バージョン 2.8.x 以前の場合
function new_excerpt_more($excerpt) { return str_replace('[...]', '...', $excerpt); } add_filter('wp_trim_excerpt', 'new_excerpt_more');
Notes
- Uses: get_the_excerpt/en.
- Uses: apply_filters()/en for 'the_excerpt'.
変更履歴
Since: 0.71
ソースファイル
the_excerpt() は、wp-includes/post-template.php
にあります。
関連
投稿タグ:
body_class(),
next_image_link(),
next_post_link(),
next_posts_link(),
post_class(),
post_password_required(),
posts_nav_link(),
previous_image_link(),
previous_post_link(),
previous_posts_link(),
single_post_title(),
sticky_class(),
the_category(),
the_category_rss(),
the_content(),
the_content_rss(),
the_excerpt(),
the_excerpt_rss(),
the_ID(),
the_meta(),
the_shortlink(),
the_tags(),
the_title(),
the_title_attribute(),
the_title_rss(),
wp_link_pages(),
最新英語版: WordPress Codex » Template Tags/the excerpt (最新版との差分)