- サイトデザイン工事中です。ご意見をお寄せください。
- 赤色のリンクは、まだ日本語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');
投稿で "read more" リンクを作成する
投稿で "read more" リンクを作成するには、テーマの functions.php に以下のコードを挿入してください。
function new_excerpt_more($post) {
return '<a href="'. get_permalink($post->ID) . '">' . 'Read the Rest...' . '</a>';
}
add_filter('excerpt_more', '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 にあります。
関連
the_ID, the_title, the_title_attribute, single_post_title, the_title_rss, the_content, the_content_rss, the_excerpt, the_excerpt_rss, wp_link_pages, next_post_link, next_posts_link, previous_post_link, previous_posts_link, posts_nav_link, sticky_class, the_meta
最新英語版: WordPress Codex » Template Tags/the excerpt (最新版との差分)