当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(attachment は attachment ?)
(23:06, 3 November 2009 Aquanelle 版。div id="the_excerpt()_vs._the_content()" の括弧は外す?)
7行目: 7行目:
 
'''注''': これは英語のように単語間を半角スペースで区切る言語の場合であり、日本語のように半角スペースを通常使用しない言語では 55'''単語'''の区切りを判定できず、すべての内容が出力されてしまうことがあります。[[日本語で WordPress#WordPress 日本語版|WordPress 日本語版]]では、この問題を含むマルチバイト関連の問題に対処するために [http://eastcoder.com/code/wp-multibyte-patch WP Multibyte Patch] プラグインを同梱していて、このプラグインを使用するとデフォルトでは110文字までを抜粋文として出力できます。
 
'''注''': これは英語のように単語間を半角スペースで区切る言語の場合であり、日本語のように半角スペースを通常使用しない言語では 55'''単語'''の区切りを判定できず、すべての内容が出力されてしまうことがあります。[[日本語で WordPress#WordPress 日本語版|WordPress 日本語版]]では、この問題を含むマルチバイト関連の問題に対処するために [http://eastcoder.com/code/wp-multibyte-patch WP Multibyte Patch] プラグインを同梱していて、このプラグインを使用するとデフォルトでは110文字までを抜粋文として出力できます。
  
現在の投稿が attachment.php および image.php テンプレートループ内の attachment の場合、キャプションは表示されません。キャプションには、[...] 記号は含まれません。
+
'''注''': 現在の投稿が attachment.php および image.php テンプレートループ内の attachment の場合、キャプションは表示されません。キャプションには、[...] 記号は含まれません。
 +
 
 +
<div id="the_excerpt_vs._the_content">
 +
<!-- div id="the_excerpt()_vs._the_content()" -->
 +
== the_excerpt() と the_content() ==
 +
</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> は、個別投稿/ページでは(もちろん)無視されます。
  
 
<div id="Usage">
 
<div id="Usage">
14行目: 20行目:
  
 
  <?php the_excerpt(); ?>
 
  <?php the_excerpt(); ?>
 +
 +
<div id="Parameters">
 +
== パラメータ ==
 +
</div>
 +
 +
このタグはパラメータをとりません。
  
 
<div id="Examples">
 
<div id="Examples">
50行目: 62行目:
 
  } ?>
 
  } ?>
  
<div id="Parameters">
+
<div id="Control_Excerpt_Length_using_Filters">
== パラメータ ==
+
=== フィルターで抜粋の長さの変更 ===
 
</div>
 
</div>
  
このタグはパラメータをとりません。
+
デフォルトでは、抜粋の長さは 55 単語です(日本語の場合は冒頭の注参照)。[[:en:Plugin API/Filter Reference/excerpt length|excerpt_length]] フィルターを使用して長さを変更するには、テーマの<tt>functions.php</tt> ファイルに以下のコードを追加します。
  
== the_excerpt() と the_content() の比較 ==
+
function new_excerpt_length($length) {
 +
      return 20;
 +
}
 +
add_filter('excerpt_length', 'new_excerpt_length');
  
[[テンプレートタグ/the_content|<code>the_content()</code>]] 関数のみを使用したほうがいい場合もあります。[[テンプレートタグ/the_content|<code>the_content()</code>]] は <code><nowiki><!--more--></nowiki></code> タグが本文中で使用されているかどうかによって何を表示するかを決定できます。
+
<div id="Remove_..._string_using_Filters">  
<code><nowiki><!--more--></nowiki></code> タグは投稿/ページを二つに分割して、一覧表示時(ブログページ、アーカイブページなど)にこのタグの前までの部分だけを表示します。
+
<!-- div id="Remove_[...]_string_using_Filters" -->  
単体の投稿・[[Pages|ページ]]を表示するときには(もちろん) <code><nowiki><!--more--></nowiki></code> は無視され、全文が表示されます。
+
=== フィルターで [...] 文字列の削除 ===
 +
</div>
  
 +
<div id="Only_in_version_2.9_and_higher_of_WordPress">
 +
==== バージョン 2.9 以降のみ ====
 +
</div>
 +
 +
デフォルトでは、抜粋の最後の文字列は '[...]' になっています。[[:en:Plugin API/Filter Reference/excerpt more|excerpt_more]] フィルターを使用して文字列を変更するには、テーマの<tt>functions.php</tt> ファイルに以下のコードを追加します。
 +
 +
function new_excerpt_more($more) {
 +
return '[.....]';
 +
}
 +
add_filter('excerpt_more', 'new_excerpt_more');
 +
 +
<div id="For_versions_2.8.x_and_Older">
 +
==== バージョン 2.8.x 以前の場合 ====
 +
</div>
 +
 +
function new_excerpt_more($excerpt) {
 +
return str_replace('[...]', '...', $excerpt);
 +
}
 +
add_filter('wp_trim_excerpt', 'new_excerpt_more');
 +
 +
<div id="Notes">
 +
== Notes ==
 +
</div>
 +
* Uses: [[:en:Function_Reference/get_the_excerpt|get_the_excerpt]].
 +
* Uses: [[:en:Function_Reference/apply_filters|<tt>apply_filters()</tt>]] for '<tt>the_excerpt</tt>'.
 +
 +
<div id="Change_Log">
 +
== 変更履歴 ==
 +
</div>
 +
Since: 0.71
 +
<div id="Source_File">
 +
== ソースファイル ==
 +
</div>
 +
<tt>the_excerpt()</tt> は、{{Trac|wp-includes/post-template.php}} にあります。
 
<div id="Related">
 
<div id="Related">
 
== 関連 ==
 
== 関連 ==
70行目: 120行目:
 
{{No Param Tag Footer}}
 
{{No Param Tag Footer}}
  
{{原文|Template Tags/the_excerpt|65496}}<!-- 07:16, 27 December 2008 Miqrogroove 版 -->
+
{{原文|Template Tags/the_excerpt|79828}}<!-- 23:06, 3 November 2009 Aquanelle 版 -->
  
 
{{DEFAULTSORT:the_excerpt}}
 
{{DEFAULTSORT:the_excerpt}}

2009年12月20日 (日) 10:51時点における版

このテンプレートタグ the_excerpt() は、現在の投稿の抜粋を、文末に [...](角括弧+三点リーダー)をつけて表示します。この三点リーダーは「続きを読む」リンクではありません。投稿作成/編集画面/en の抜粋文入力欄に記入してあればそれを、抜粋を入力していない場合は投稿内容の最初の 55個の単語までを表示します()。また、抜粋のコンテンツからは HTML タグと画像は取り除かれます。このタグはループ内でのみ使えます。

: これは英語のように単語間を半角スペースで区切る言語の場合であり、日本語のように半角スペースを通常使用しない言語では 55単語の区切りを判定できず、すべての内容が出力されてしまうことがあります。WordPress 日本語版では、この問題を含むマルチバイト関連の問題に対処するために WP Multibyte Patch プラグインを同梱していて、このプラグインを使用するとデフォルトでは110文字までを抜粋文として出力できます。

: 現在の投稿が attachment.php および image.php テンプレートループ内の attachment の場合、キャプションは表示されません。キャプションには、[...] 記号は含まれません。

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 フィルターを使用して長さを変更するには、テーマのfunctions.php ファイルに以下のコードを追加します。

function new_excerpt_length($length) {	
     return 20;	
}	
add_filter('excerpt_length', 'new_excerpt_length');	

フィルターで [...] 文字列の削除

バージョン 2.9 以降のみ

デフォルトでは、抜粋の最後の文字列は '[...]' になっています。excerpt_more フィルターを使用して文字列を変更するには、テーマの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最新版との差分