我有两个影响the_excerpt
:
// Grab First Paragraph Of Text And Ignore Images For Excerpt
function awesome_excerpt($text, $raw_excerpt) {
if( ! $raw_excerpt ) {
$content = apply_filters( \'the_content\', get_the_content() );
$text = substr( $content, 0, strpos( $content, \'</p>\' ) + 4 );
}
$text = preg_replace("/<img[^>]+\\>/i", "", $text);
return $text;
}
add_filter( \'wp_trim_excerpt\', \'awesome_excerpt\', 10, 2 );
function excerpt($limit) {
$excerpt = explode(\' \', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).\'...\';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace(\'`\\[[^\\]]*\\]`\',\'\',$excerpt);
return $excerpt;
}
现在,在我的
index.php
, 这些帖子显示了帖子的第一段。当你点击一个名为“相关帖子”的区域中的帖子时,我也试图显示摘录。在相关帖子中,我希望它显示x个字符的限制。
在index.php
我把它作为the_excerpt
, 但在我的相关帖子中,我称之为<?php echo excerpt(25);?>
. 这就是我为相关帖子调用标记时的样子,如:
<div class="recent-meta-excerpt">
<?php echo excerpt(25);?>
<a class="read-more" href="<?php the_permalink(); ?>">Read More <i class="fa fa-long-arrow-right"></i></a>
</div>
输出如下:
<div class="recent-meta-excerpt">
<p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout....
<a class="read-more" href="http://www.stepyouraimup.com/blog/no-featured-image/">Read More <i class="fa fa-long-arrow-right"></i></a>
</p>
</div>
但我不想
<a>
在…内当我打电话的时候
the_excerpt
在相关岗位上
<a>
它在
<p>
. 关于索引中的主要帖子。php它将文章的第一段包装成
<p>
, 这是正确的。我也想对相关帖子的摘录做同样的处理,但它不应该有
<a>
在里面。如果它在通话之外,为什么要包含在通话中?
如果您想要一个真实的示例,请单击here 要查看我的博客,请单击帖子以查看相关帖子。
SO网友:BillK
取决于您在循环中调用的位置excerpt()
wpautop可能正在创建<p>...</p>
包装器。那样的话,你可以$excerpt
具有<p>...</p>
在归还之前。
编辑:尝试此方法<?php echo excerpt(25)."\\n";?>
(或可能"\\n\\n"
) 改变行为。
在功能中awesome_excerpt()
你有$text = substr( $content, 0, strpos( $content, \'</p>\' ) + 4 );
所以$text
必须包含开头<p>
. 这可能是你所描述的原因。添加str_ireplace(\'<p>\', \'\', $excerpt)
在里面function excerpt()
通话前explode
.
在您问题中显示的当前代码中,不清楚在哪里function excerpt()
正在调用。
为什么不直接使用excerpt_length
是否筛选以修改摘录的长度?从Codex:
function custom_excerpt_length( $length ) {
return 25;
}
add_filter( \'excerpt_length\', \'custom_excerpt_length\', 999 );