定义摘录的逻辑在哪里?

时间:2011-04-21 作者:Tom Auger

我正在努力学习如何通过跟踪WordPress的源代码等来了解它。

我真的被\\u摘录()难住了。文档说明,\\u摘录使用get\\u the\\u extract(),并将返回(手动)摘录,或使用\\u内容的前55个字符。

我对逻辑感兴趣,它首先查找手动摘录,然后决定是否需要从帖子内容中提取子字符串。但我找不到它。

在post模板中。php中,我们看到了\\u摘录()并定义了\\u摘录()。

\\u extract()只执行echo out get\\u the\\u extract():

249 function the_excerpt() {
250         echo apply_filters(\'the_excerpt\', get_the_excerpt());
251 }
get\\u the\\u extract()似乎只不过是从wp\\u post表中获取post\\u extract列:

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\\u内容的逻辑在哪里。它在过滤器里吗?我在任何地方都看不到这些定义的过滤器,但这可能是因为我不知道在哪里查找。

粗略地看一眼Adam Brown\'s source code search site 似乎也没有给出任何定义。

有人能帮我把线捡起来,把它弄清楚吗?记住,我更感兴趣的是如何找出答案,而不是实际答案。

我感谢大家的意见。

汤姆

1 个回复
最合适的回答,由SO网友:Cristian 整理而成

根据我对默认过滤器的理解。php文件过滤器应用于“get\\u the\\u filter”过滤器。回调用于名为“wp\\u trim\\u execrpt”的方法。这可以在格式化中找到。php。从那里你可以看到逻辑。希望这有帮助。

结束

相关推荐

Automating Excerpt

我正在努力automate 编辑通过自动化工作excerpts.我的解决方案可行,但几乎没有问题:如果一篇文章开头有图像/破坏的html,它会破坏版面。子字符串剪切单词。是否有更好的解决方案来自动化摘录或改进现有代码?<?php if(!empty($post->post_excerpt)) { the_excerpt(); } else { echo \"<p>\".substr(get_the