应用过滤器(‘Get_the_Content’,$Content)+Except

时间:2013-06-08 作者:Jon Nixon

我正在使用以下函数动态加载我的内容:

apply_filters(\'get_the_content\', $content)
然而,我想对该方法进行摘录,但我知道的唯一方法是:

$content = apply_filters(\'the_content\',get_the_content( $more_link_text, $stripteaser, $more_file ));
有没有办法将摘录应用到我的函数中?有什么想法?

最好的

乔恩

1 个回复
SO网友:a web dev

如果您的意思是希望自动从帖子内容中创建摘录,可以使用wp_trim_words.

$auto_excerpt =
      apply_filters( \'the_excerpt\', wp_trim_words( $content, 30, "..." ) ); ?>
在哪里30 是您希望摘录最多的字数,以及省略号"..." 如果内容超过指定的字数,将显示在结尾。但我不建议这样做。

一种更好的方法,如果您只使用内置的WordPress功能,效果会更好get_the_excerpt 它检查文章作者是否已经定义了摘录(除非您不想这样做),否则它会通过wp_trim_excerpt

下面是如何在页面模板中使用它

/* Apply the excerpt filter to ensure tags get stripped if being
   generated by wp_trim_excerpt */
$excerpt = apply_filters( \'the_excerpt\', get_the_excerpt() );
现在,要控制摘录的行为,可以选择将这些添加到函数中。php

function wpse_102311_excerpt_more( $length ) {
    return "..."; /* Set desired more text here */
}
add_filter( \'excerpt_more\', \'wpse_102311_excerpt_more\', 99 );

function wpse_102311_excerpt_length( $length ) {
    return 30; /* Set the max excerpt length here */
}
add_filter( \'excerpt_length\', \'wpse_102311_excerpt_length\', 99 );
这种方法也很好,因为它可以统一摘录的样式,因为您只需要在模板中使用本机函数,但允许您保留对摘录长度以及更多文本的控制。

希望这有帮助!

结束

相关推荐

Usage of filters

在下面的示例中(从WordPress.org)获取提要后,为什么要删除过滤器<?php function return_7200( $seconds ) { // change the default feed cache recreation period to 2 hours return 7200; } add_filter( \'wp_feed_cache_transient_lifetime\' , \'return_720