有三个过滤器控制»更多«链接,具体取决于使用的函数/模板标记。糟糕的是,他们互相拦截。好的是,您可以使用current_filter()
检索当前连接的筛选器的名称并修改输出。
然后我们得到了\'excerpt_length\'
-筛选以限制摘录长度。这一个不允许我们添加永久链接,但它可以帮助我们与其他过滤器结合使用。请参阅2插件。
permalink more插件此插件将permalink添加到内容或摘录中,具体取决于显示的内容。它还重置excerpt_more
-过滤以不输出任何内容,因此不会干扰其他过滤器。
<?php
/** Plugin Name: (#69204) »kaiser« Adds a permalink to the excerpt & content */
/**
* Alters the display of the "more" link
*
* @param string $permalink
* @param string $text
* @return string $html
*/
function wpse69204_more_link( $output )
{
$html .= \'<span class="post-more"> \';
$html .= sprintf(
\'<a href="%s#more-%s" class="more-link" title="read more" >\'
,get_permalink()
,get_the_ID()
);
$html .= \'</a></span>\';
// Override \'excerpt_more\'
if ( \'excerpt_more\' === current_filter() )
return;
// Strip the content for the `get_the_excerpt` filter.
$output = wp_trim_words( $output, 300 );
// Append for the excerpt
if ( \'get_the_excerpt\' === current_filter() )
return $output.$html;
// The permalink for the `the_content_more_link`-filter.
return $html;
}
# "More" link for the content
add_filter( \'the_content_more_link\', \'wpse69204_more_link\' );
add_filter( \'get_the_excerpt\', \'wpse69204_more_link\' );
add_filter( \'excerpt_more\', \'wpse69204_more_link\' );
如果您只想修改摘录的长度,可以使用更简单的过滤器设置。下面的插件做得很好。它将内容(我们在循环中,可以访问post数据)减少到300字。在下一步中,它统计每个单词的字母。然后它只返回这个(动态分配的)数字。
<?php
/** Plugin Name: (#69204) »kaiser« Limit excerpt length by word count */
function wpse69204_excerpt_length( $length )
{
$to_count = array_splice( get_the_content(), 300 );
$i = 0;
foreach ( $to_count as $word )
{
$i += strlen( $word );
}
return $i;
}
add_filter( \'excerpt_length\', \'wpse69204_excerpt_length\' );
注:两个插件都是“零配置”。只需上传、激活、完成即可你必须使用
the_content()
或
the_excerpt()
在你的主题中使用这个插件