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

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

テンプレートタグ/get the excerpt

提供: WordPress Codex 日本語版
移動先: 案内検索

現在の投稿の概要を"[…]"テキストを最後に付けた状態で返す関数です。なお、"[…]"は「続きを読む」ためのリンクではありません。このテンプレートタグはループの中で使われる必要があります。代わりに、抜粋を直接表すために the_excerpt() を用いることもできますが、この場合 get_the_excerpt() によって返された文字列の前と後ろに <p> タグが付加されます。

使い方

<?php $excerpt = get_the_excerpt( $deprecated ) ?>

パラメータ

$deprecated は必要ではありません。

戻り値

  • もしも投稿に抜粋が設定されていない場合、この関数は投稿内容に wp_trim_excerpt を適用し、55単語を抜き出して概要を生成します。この時生成された文字列の後ろには "[...]" が付加されます。wp_trim_excerptget_the_excerpt フィルターを経由して適用されますが、これは削除可能です。
  • パスワードで保護されたページでは、"There is no excerpt because this is a protected post." という初期値の文字列を返します。この文字列は関数定義の段階で変更可能です。
  • もし投稿に抜粋があり、パスワード保護もされていない時は、抜粋欄に入力した文字列を返します。

(注) 日本語のように語句の間を半角スペースで区切らない言語では「55単語」を判定できないため、抜粋できずに本文のほとんどが出力されてしまうことがあります。

WordPress 日本語版では、この問題を含むマルチバイト関連の問題に対処するために WP Multibyte Patch プラグインを同梱しています。このプラグインを使用すると、110文字まで(設定により変更可)を抜粋文として出力できます。

用例

get_the_excerpt() を用いて、ページに出力することなく、変数に値を読み込み保持する場合。

<?php
$my_excerpt = get_the_excerpt();
if ( $my_excerpt != '' ) {
	// ここで文字列の生成が行われる。
}
echo $my_excerpt; // 処理された値をページに出力する
?>

get_the_excerpt() を用いて、設定した最大文字数で概要を表示される場合。

<?php
the_excerpt_max_charlength(140);

function the_excerpt_max_charlength($charlength) {
	$excerpt = get_the_excerpt();
	$charlength++;

	if ( mb_strlen( $excerpt ) > $charlength ) {
		$subex = mb_substr( $excerpt, 0, $charlength - 5 );
		$exwords = explode( ' ', $subex );
		$excut = - ( mb_strlen( $exwords[ count( $exwords ) - 1 ] ) );
		if ( $excut < 0 ) {
			echo mb_substr( $subex, 0, $excut );
		} else {
			echo $subex;
		}
		echo '[...]';
	} else {
		echo $excerpt;
	}
}
?>


変更履歴

0.71にて導入されました。

ソースファイル

get_the_excerpt() is located in wp-includes/post-template.php.

the_excerpt()


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get the excerpt最新版との差分