我有一个PHP代码,显示主页(www.kushaku.com)中每篇文章的描述: 以下是显示说明的代码:
<p class="shortdesc1">
<?php the_content(); ?>
</p>
我试着将主页的描述部分限制为一些字符,比如180个字符,然后显示'...'
我尝试了以下代码:
function string_limit_words($string, $word_limit)
{
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit) {
array_pop($words);
//add a ... at last article when more than limit word count
echo implode(' ', $words)."..."; } else {
//otherwise
echo implode(' ', $words); }
}
<?php
$excerpt = the_content();
echo string_limit_words($excerpt,25);
?>
但它仍然显示完整内容。 如果我打印计数($ words),它显示'1', 如果我取$ string的strlen,它会输出为'0'。 如果我使用count_chars(),它会将输出设为'0'。
请提出任何方法来实现我的目标。
先谢谢, 的Vivek
答案 0 :(得分:0)
我认为substr
功能是您需要的。
$a = "this is test description";
echo substr($a, 0, 4);
答案 1 :(得分:0)
the_content()
将输出内容到页面中。它不是return
,而是 echo
s 。我相信要将内容放在您需要使用get_the_content()
的变量中。
这只是我对Wordpress的了解,但如果没有内置这样的摘录功能,我会感到非常惊讶。
答案 2 :(得分:0)
通过使用substr
,您可以获得指定长度(第3个参数)的起始形式(第2个参数)的字符串(第1个参数)。所以像这样:
$excerpt = "Hi I'm a string";
function string_limit_words($str, $limit)
{
return substr($str, 0, $limit) . '...';
}
echo string_limit_words($excerpt, 10);
看到您正在使用Wordpress 我认为存在the_excerpt()
函数来获取摘录而不是使用the_content()
。我不知道the_excerpt()
返回的字符长度。
无论如何,如果你想指定不同长度的摘录,你需要使用自己的功能
答案 3 :(得分:0)
这很简单:
$excerpt = substr($excerpt, 0, 180) . '...';
答案 4 :(得分:0)
试试这个:
function limit_string($str, $limit){
return strlen($str)>$limit ? substr($str,0,$limit)."..." : $str;
}
答案 5 :(得分:0)
function string_limit_words($string, $word_limit) {
$words = explode(" ", $string);
// get 1st word length
$count = strlen($words[0]);
$i = 0;
$arr = array();
// while total length is less then limit (you can add +$i to count whitespaces too)
while ($count < $word_limit) {
// add word to result
$arr[] = $words[$i];
$count += strlen($words[$i+1]);
$i++;
}
return implode(" ", $arr)." ...";
}
$string = 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit';
echo string_limit_words($string, 30);
此功能在到达字数限制之前停止在字结束,而不是切割字...
答案 6 :(得分:0)
试试这个:
function string_limit_words($string, $word_limit)
{
$string = substr($string, 0, $word_limit);
if (($i = strrpos($string, ' ')) !== false) $string = substr($string, 0, $i);
return preg_match('/^(.+\w)[.,;]?\s*$/', $string, $arr)? $arr[1] : $string;
}
答案 7 :(得分:0)
有关如何修剪内容的几种方法已在此处发布,因此我不会在此处发布其他功能或代码段。
但缺少以使您的功能与wordpress一起使用是因为您必须将新功能添加为the_content
的过滤器。
只需搜索“wordpress the_content hook”或查看e。 G。 Hooking the_content filter in wordpress
干杯!