web-dev-qa-db-ja.com

抜粋を定義するロジックはどこにありますか?

私はそのソースコードなどを追うことによってWordPressについて学ぶためにHOWを学ぶことを試みています。

私は本当にthe_excerpt()に困惑しています。ドキュメンテーションはthe_excerptがget_the_excerpt()を使うと述べていて、(手動の)抜粋を返すか、the_contentの最初の55文字を使うでしょう。

私は最初に手動の抜粋を探して、それからそれが入って投稿内容から部分文字列を抽出する必要があるかどうかを決定するロジックに興味があります。しかし、私はそれを見つけることができません。

Post-template.phpでは、the_excerpt()とget_the_excerpt()が定義されています。

the_excerpt()はget_the_excerpt()をエコーアウトするだけです。

249 function the_excerpt() {
250         echo apply_filters('the_excerpt', get_the_excerpt());
251 }

get_the_excerpt()は、wp_postテーブルからpost_excerpt列を取得すること以外に何もしないようです。

261 function get_the_excerpt( $deprecated = '' ) {
262         if ( !empty( $deprecated ) )
263                 _deprecated_argument( __FUNCTION__, '2.3' );
264 
265         global $post;
266         $output = $post->post_excerpt;
267         if ( post_password_required($post) ) {
268                 $output = __('There is no excerpt because this is a protected post.');
269                 return $output;
270         }
271 
272         return apply_filters('get_the_excerpt', $output);
273 }

$ post-> post_contentを取得するロジックがどこにあるのかわかりません。フィルターに入っていますか?私はこれらのフィルタがどこかで定義されているのを見ることができません、しかし、これは私がちょうどどこを見ればいいかわからないからかもしれません。

Adam Brownのソースコード検索サイト をざっと見ただけでも、定義は上がっていないようだ。

誰かが私が糸を拾ってこれを理解するのを手伝ってくれる?覚えておいて、私は実際の答えにいるよりもそれをどのように理解するかにもっと興味がある。

皆さんのご意見に感謝します。

トム

1
Tom Auger

Default-filters.phpファイルで私が理解したことから、フィルタは 'get_the_filter'フィルタに適用されます。コールバックは 'wp_trim_execrpt'と呼ばれるメソッド用です。これはformat.phpにあります。そこからあなたは論理を見ることができます。それが役立つことを願っています。

2
Cristian