• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「テンプレートタグ/the excerpt」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(23:06, 3 November 2009 Aquanelle 版。div id="the_excerpt()_vs._the_content()" の括弧は外す?)
(冒頭 attachment 表示しない→するに修正、日本語版にも赤リンク、div修正(Mizunoさんthanks!) the_excerpt() と the_content(): 翻訳だと分かりにくいので文章補正)
3行目: 3行目:
 
</div>
 
</div>
  
このテンプレートタグ <code>'''the_excerpt()'''</code> は、現在の投稿の[[用語集#Excerpt|抜粋]]を、文末に [...](角括弧+三点リーダー)をつけて表示します。この三点リーダーは「続きを読む」リンクではありません。[[Write Post SubPanel|投稿作成/編集画面]]/[[:en:Write Post SubPanel|en]] の抜粋文入力欄に記入してあればそれを、抜粋を入力していない場合は投稿内容の最初の 55個の単語までを表示します('''注''')。また、抜粋のコンテンツからは [[用語集#HTML|HTML]] タグと画像は取り除かれます。このタグは[[The Loop|ループ]]内でのみ使えます。
+
このテンプレートタグ <code>'''the_excerpt()'''</code> は、現在の投稿の[[用語集#Excerpt|抜粋]]を、文末に [...](角括弧+三点リーダー)をつけて表示します。この三点リーダーは「続きを読む」リンクではありません。[[Write Post SubPanel|投稿作成/編集画面]] の抜粋文入力欄に記入してあればそれを、抜粋を入力していない場合は投稿内容の最初の 55個の単語までを表示します('''注''')。また、抜粋のコンテンツからは [[用語集#HTML|HTML]] タグと画像は取り除かれます。このタグは[[The Loop|ループ]]内でのみ使えます。
  
'''注''': これは英語のように単語間を半角スペースで区切る言語の場合であり、日本語のように半角スペースを通常使用しない言語では 55'''単語'''の区切りを判定できず、すべての内容が出力されてしまうことがあります。[[日本語で WordPress#WordPress 日本語版|WordPress 日本語版]]では、この問題を含むマルチバイト関連の問題に対処するために [http://eastcoder.com/code/wp-multibyte-patch WP Multibyte Patch] プラグインを同梱していて、このプラグインを使用するとデフォルトでは110文字までを抜粋文として出力できます。
+
現在の投稿が attachment.php および image.php テンプレートループ内の [[Using Image and File Attachments|attachment]]/[[:en:Using Image and File Attachments|en]] の場合、attachment のキャプションを表示します。キャプションには、抜粋の [...] 記号は含まれません。
  
'''''': 現在の投稿が attachment.php および image.php テンプレートループ内の attachment の場合、キャプションは表示されません。キャプションには、[...] 記号は含まれません。
+
<div id="note" class="important">
 +
(注) 日本語のように語句の間を半角スペースで区切らない言語では「55'''単語'''」を判定できないため、抜粋できずに本文のほとんどが出力されてしまうことがあります。
  
<div id="the_excerpt_vs._the_content">
+
[[日本語で WordPress#WordPress 日本語版|WordPress 日本語版]]では、この問題を含む[[日本語・マルチバイト特有の問題|マルチバイト関連の問題]]に対処するために [http://eastcoder.com/code/wp-multibyte-patch WP Multibyte Patch] プラグインを同梱しています。このプラグインを使用すると、110'''文字'''まで(設定により変更可)を抜粋文として出力できます。
<!-- div id="the_excerpt()_vs._the_content()" -->
+
</div>
 +
 
 +
<div id="the_excerpt.28.29_vs._the_content.28.29">
 
== the_excerpt() と the_content() ==
 
== the_excerpt() と the_content() ==
 
</div>
 
</div>
[[テンプレートタグ/the_content|the_content()]] 関数のみを使うことが意味があることがあります。 [[テンプレートタグ/the_content|the_content()]] は、<tt>&lt;!--more--&gt;</tt> タグが使用されているかどうかによって、何を表示するかを決定します。 <tt>&lt;!--more--&gt;</tt> タグは、投稿/ページを 2 つの部分に分けます。リストでは、このタグより前のコンテンツのみが表示されます。<tt>&lt;!--more--&gt;</tt> は、個別投稿/ページでは(もちろん)無視されます。
+
あえて [[テンプレートタグ/the_content|the_content()]] 関数を使うことに意味がある場合があります。 [[テンプレートタグ/the_content|the_content()]] は、投稿本文内に [[Writing Posts#Visual Versus HTML_Editor|<tt><nowiki><!--more--></nowiki></tt> タグ]]が使用されているかどうかによって表示内容が変わります。<tt><nowiki><!--more--></nowiki></tt> タグは、挿入した位置で本文を 2つに分け、メインブログページやアーカイブといったリスト形式のページではこのタグより前の本文のみを表示します。個別投稿/ページでは <tt><nowiki><!--more--></nowiki></tt> は(もちろん)無視され、本文全てを表示します。
  
 
<div id="Usage">
 
<div id="Usage">
35行目: 38行目:
 
</div>
 
</div>
  
投稿の抜粋を表示します。個別投稿を表示する時以外に [[テンプレートタグ/the_content|the_content()]] の代わりにループ内で強制的に抜粋を表示するときに使用します。
+
投稿の抜粋を表示します。個別投稿を表示する時以外に [[テンプレートタグ/the_content|the_content()]] の代わりに[[The Loop|ループ]]内で強制的に抜粋を表示するときに使用します。
  
 
  <?php the_excerpt(); ?>
 
  <?php the_excerpt(); ?>
43行目: 46行目:
 
</div>
 
</div>
  
アーカイブページおよびカテゴリーページ([[Conditional Tags#Any Archive Page|<code>is_archive()</code>]] で判定)表示時に、[[テンプレートタグ/the_content|<code>the_content()</code>]] タグの替わりに <code>the_excerpt()</code> を用いて抜粋文を表示する例です。
+
アーカイブページおよびカテゴリーページ表示([[Conditional Tags#Any Archive Page|<code>is_archive()</code>]] で判定)時に、[[テンプレートタグ/the_content|<code>the_content()</code>]] タグの替わりに <code>the_excerpt()</code> を用いて抜粋文を表示する例です。
 
<!-- is_archive() にカテゴリページも含まれるので is_category() を消去しました。(ぼの) -->
 
<!-- is_archive() にカテゴリページも含まれるので is_category() を消去しました。(ぼの) -->
  
66行目: 69行目:
 
</div>
 
</div>
  
デフォルトでは、抜粋の長さは 55 単語です(日本語の場合は冒頭の注参照)。[[:en:Plugin API/Filter Reference/excerpt length|excerpt_length]] フィルターを使用して長さを変更するには、テーマの<tt>functions.php</tt> ファイルに以下のコードを追加します。
+
デフォルトでは、抜粋の長さは 55 単語です(日本語の場合は[[#note|冒頭の注]]参照)。[[プラグイン API/フィルターフック一覧/excerpt_length|excerpt_length]]/[[:en:Plugin API/Filter Reference/excerpt_length|en]] フィルターを使用して長さを変更するには、テーマの [[テーマの作成#テーマの構造|<code>functions.php</code> ファイル]]に以下のコードを追加します。
  
 
  function new_excerpt_length($length) {
 
  function new_excerpt_length($length) {
73行目: 76行目:
 
  add_filter('excerpt_length', 'new_excerpt_length');
 
  add_filter('excerpt_length', 'new_excerpt_length');
  
<div id="Remove_..._string_using_Filters">
+
<div id="Remove_.5B....5D_string_using_Filters">
<!-- div id="Remove_[...]_string_using_Filters" -->  
+
=== フィルターで [...] 文字列の変更・削除 ===
=== フィルターで [...] 文字列の削除 ===
+
 
</div>
 
</div>
  
82行目: 84行目:
 
</div>
 
</div>
  
デフォルトでは、抜粋の最後の文字列は '[...]' になっています。[[:en:Plugin API/Filter Reference/excerpt more|excerpt_more]] フィルターを使用して文字列を変更するには、テーマの<tt>functions.php</tt> ファイルに以下のコードを追加します。
+
デフォルトでは、抜粋の最後の文字列は '[...]' になっています。[[プラグイン API/フィルターフック一覧/excerpt_more|excerpt_more]]/[[:en:Plugin API/Filter Reference/excerpt_more|en]] フィルターを使用して文字列を変更するには、テーマの [[テーマの作成#テーマの構造|<code>functions.php</code> ファイル]]に以下のコードを追加します。
 
 
 
  function new_excerpt_more($more) {
 
  function new_excerpt_more($more) {
101行目: 103行目:
 
== Notes ==
 
== Notes ==
 
</div>
 
</div>
* Uses: [[:en:Function_Reference/get_the_excerpt|get_the_excerpt]].
+
* Uses: [[関数リファレンス/get_the_excerpt|get_the_excerpt]]/[[:en:Function Reference/get_the_excerpt|en]].
* Uses: [[:en:Function_Reference/apply_filters|<tt>apply_filters()</tt>]] for '<tt>the_excerpt</tt>'.
+
* Uses: [[関数リファレンス/apply_filters|<tt>apply_filters()</tt>]]/[[:en:Function Reference/apply_filters|en]] for '<tt>the_excerpt</tt>'.
  
 
<div id="Change_Log">
 
<div id="Change_Log">
108行目: 110行目:
 
</div>
 
</div>
 
Since: 0.71
 
Since: 0.71
 +
 
<div id="Source_File">
 
<div id="Source_File">
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
<tt>the_excerpt()</tt> は、{{Trac|wp-includes/post-template.php}} にあります。
+
<tt>the_excerpt()</tt> は、{{BrowseSource|wp-includes/post-template.php}} にあります。
 +
 
 
<div id="Related">
 
<div id="Related">
 
== 関連 ==
 
== 関連 ==
120行目: 124行目:
 
{{No Param Tag Footer}}
 
{{No Param Tag Footer}}
  
{{原文|Template Tags/the_excerpt|79828}}<!-- 23:06, 3 November 2009 Aquanelle 版 -->
+
{{原文|Template Tags/the excerpt|81509}}<!-- 19:31, 28 December 2009 GeertDD 版 -->
  
{{DEFAULTSORT:the_excerpt}}
+
{{DEFAULTSORT:The_excerpt}}
 
[[Category:UI Link]]
 
[[Category:UI Link]]
  
 
[[en:Template Tags/the_excerpt]]
 
[[en:Template Tags/the_excerpt]]

2010年1月10日 (日) 11:05時点における版

このテンプレートタグ 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

変更履歴

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最新版との差分