Articles

WordPress.org

Languages: English – 関数リファレンス/get the excerpt 日本語 (Add your language)

Description

投稿の抜粋を返します。 これは、変更せずに返されるユーザー提供の抜粋、または自動生成された完全な投稿コンテンツのワード カウントされたトリミング版のいずれかです。

自動生成された抜粋は、すべてのショートコードとタグが削除されており、生のテキスト内の実際の改行も削除されるので、あらゆる形式の出力で改行が見られない単なる書式なし文字列になることを意味します。

the_excerpt() を通じて呼び出された場合、これは自動生成抜粋が、基本的に <p></p> タグで囲まれた単なる生テキストであることを意味します。 このタグはデフォルトでは ” です。 これは excerpt_more フィルタで変更できます。

デフォルトの単語の長さは 55 ワードです。

Usage

<?php $excerpt = get_the_excerpt( int|WP_Post $post ) ?>

この関数は、$postまたはIDパラメータが渡されないときにループ内で使用しなければなりません。

この関数がループの外で使用されていて投稿にカスタム抜粋がない場合、この関数は抜粋を生成するのに wp_trim_excerpt() を使用します。 この関数はget_the_content()を使用しており、The Loopと共に使用する必要があるため、get_the_excerpt()がThe Loopの外で使用されている場合、問題が発生する可能性があります。 この問題を避けるには、get_the_excerpt() を呼び出す前に setup_postdata() を使用して、グローバルな $post オブジェクトを設定します。

Parameters

$post (integer|WP_Post) (optional) Post ID または WP_Post オブジェクト。 デフォルトはグローバルな $post です。 デフォルト: null

戻り値

  • 既存の抜粋を変更せず(デフォルト)、それに get_the_excerpt フィルターを適用して返します。
  • 説明したように、投稿内容全体をトリミングして、それにさらに wp_trim_excerpt フィルターを適用したものを返します。 wp_trim_excerpt’ は ‘get_the_excerpt’ から連結されているので、 あなたのフィルタの優先順位に応じて、あなた自身の get_the_excerpt フィルタがトリムの前または後にコールされることを意味します。 先にコールされた場合、ユーザーから提供された抜粋がなければ $text パラメータは空の文字列になりますが、後にコールされた場合は記事全体を切り詰めたものになります。 後者の場合、’wp_trim_excerpt’ を使用すると便利でより有意義かもしれません。これは、wp_trim_excerpt 関数にトリミング前の入力を与える第2パラメータがあるためで、この第2パラメータは単に生の $post->post_excerpt.
  • パスワード保護ページでは、デフォルト値が “This is a protected post” なので excerpt は存在しません、という文字列を返します。 このテキストは関数定義で変更できます。

get_the_excerpt() は、ページに出力せずに、値を取得して変数に格納するために使用することができます。

<?php$my_excerpt = get_the_excerpt();if ( '' != $my_excerpt ) {// Some string manipulation performed}echo $my_excerpt; // Outputs the processed value to the page?>

get_the_excerpt() を使用して、最大文字数を指定して抜粋を表示します。

<?phpthe_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 ) );if ( $excut < 0 ) {echo mb_substr( $subex, 0, $excut );} else {echo $subex;}echo '';} else {echo $excerpt;}}?>

変更履歴

Since: 0.71