2017-10-18 30 views
0

我有一个WordPress新闻网站,我必须在一定数量的字符后剪切文本。这一切都可以通过substr()正常工作,但是如果有小于x个字符,它会变得疯狂并在下一个<li>的链接中生成一个不存在。通过substr失败后截去一定数量的字符文本

这是代码:

echo '<li>', get_the_date('d.m.Y', $recent["ID"]), '&nbsp;&nbsp;<a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . $recent["post_title"].'</a> </li> '; 
$post_id = $recent["ID"]; 
$post_content = get_post($post_id); 
$content = $post_content->post_content; 
echo mb_substr(do_shortcode($content), 0, 200 , "utf-8"); 
echo "...<br> <br>"; 
echo "</div>"; 
+0

你最好trancate使用的话不是字符的帮助,你需要在截断时保留HTML标签,下面是关于如何这样做的教程:https://www.pjgalbraith.com/truncating-text-html-with-php/ – teeyo

回答

0

在$内容有任何HTML?如果是的话,并且被砍断,就会使下一个“礼”是无效的HTML,也许......刚刚发现这一点,可能是

Remove all html tags from php string

+0

替换为 echo mb_substr(do_shortcode($ content),0 ,200,“utf-8”); by echo mb_substr(strip_tags($ content),0,200,“utf-8”); 它的工作原理,谢谢:) –

相关问题