这是一个RSS问题:我从一个站点拉一个RSS提要来显示在我的主页上。它正确地显示标题,但我想截断每篇文章的字符数,这样如果标题很长,它就不会占用很长的部分。我该怎么做?这是我使用的代码
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . \'/feed.php\');
$rss = fetch_feed(\'http://examplesite.com/rss\');
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(5);
$rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ($maxitems == 0) echo \'<li>No items.</li>\';
else
foreach ( $rss_items as $item ) : ?>
<li>
<a href=\'<?php echo $item->get_permalink(); ?>\'
title=\'<?php echo \'Posted \'.$item->get_date(\'j F Y | g:i a\'); ?>\'>
<?php echo $item->get_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
我试图基本上限制摘录中显示的字数,问题是我想在两个不同的循环中使用相同的摘录。第一个循环将显示整个摘录,第二个循环将只显示其中的一小部分。因此,我不能限制所有摘录的字数,但我需要在本地这样做。理想情况下,如果有一个解决方案,我可以在博客的许多不同地方使用相同的摘录,使用相同的摘录,但根据具体情况使用更长/更短的版本。
<?php $little_excerpt = substr(the_excerpt(),0,XY); ?>
不起作用,因为_
excerpt()
不在字符串处。
我们可以使用get_the_excerpt()
相反,这会起到作用。然而,这仍然限制了字符,而不是文字。
我刚刚找到了一个解决方案,可以在没有插件的情况下限制摘录的字数。将以下代码放入模板函数中。php文件:
<?php
function string_limit_words($string, $word_limit)
{
$words = explode(\' \', $string, ($word_limit + 1));
if(count($words) > $word_limit)
array_pop($words);
return implode(\' \', $words);
}
?>
接下来,将以下代码放在模板中要显示摘录的位置:
<?php
$excerpt = get_the_excerpt();
echo string_limit_words($excerpt,25);
?>
其中25是要显示的字数。
最合适的回答,由SO网友:jgraup 整理而成
使用PHPstring functions 喜欢substr 返回字符数而不是字数。
帖子内容aaaaaaaaaaaaaaa aaaaaaaaaaaaa
将比a a
.
$max_length = 150;
echo substr( $string, 0, $max_length );
作为一个函数,它可能看起来像:
function string_limit_words( $string = \'\', $count = 25, $after = \'...\' ) {
if ( strlen( $string ) <= $count ) {
return $string;
}
return substr( $string, 0, $count ) . $after;
}
echo string_limit_words( "This is a lot of words", 10 );
// This is a ...
<小时>
the_excerpt()
打印输出,同时
get_the_excerpt()
将返回字符串以允许在输出之前进行操作。