我正在修改Wordpress主题,我希望在主页上显示故事中显示的有限数量的字符,并包含指向其余故事的链接。这应该自动完成,而作者不必指定中断发生的点。但是,我想允许使用html标签,但我不想在标签关闭之前拆分故事。
我正在使用的代码包含函数strip_tags
,以确保字符中断不会出现在html标记的中间。但是,内容作者希望能够包含一些标记,并且随着时间的推移,之前的网站管理员修改了主题以允许某些标记,例如<p>
,<i>
等。但是,现在我正在网站上工作,内容作者真的希望能够包含链接和图像等内容。我尝试评论strip_tags
命令,但现在理解为什么它被包含在内,因为如果文本位于标记的中间或标记未正确关闭,则将文本拆分到任意点可能会有问题。
我正在试图弄清楚php是否有确保标签关闭的规定,所以我可以在拆分文本之前做到这一点。或许还有其他一些选择。我正在使用的代码片段如下所示。
$content = get_the_content('', $stripteaser, $more_file);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
//Commenting out following line causes problems
//$content = strip_tags($content, '<p><br><b><i><strong><em>');
if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
$content = substr($content, 0, $espacio);
$content = $content;
echo "<p>";
echo $content;
echo "...";
echo " <a rel='nofollow' href='";
the_permalink();
echo "'>".$more_link_text."</a>";
echo "</p>";
}
答案 0 :(得分:0)
如果你不想使用the_excerpt(),你可以阅读更多关于More Tag的信息,以便在不使用过滤器或正则表达式的情况下完成你所描述的一切。
但是,如果您真的好奇使用正则表达式来检测更多标记,那么这将是您需要的字符串:
/<span id="more-\d+"><\/span>|<!--more-->/i