1

我正在修改 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(']]>', ']]&gt;', $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 "&nbsp;<a rel='nofollow' href='";
    the_permalink();
    echo "'>".$more_link_text."</a>";
    echo "</p>";
}
4

1 回答 1

0

如果您不想使用 the_excerpt(),您可以阅读更多关于More Tag来完成您所描述的所有事情,而无需使用过滤器或正则表达式。

但是,如果您真的对使用正则表达式来检测更多标签感到好奇,那么这将是您需要的字符串:

/<span id="more-\d+"><\/span>|<!--more-->/i
于 2012-07-27T21:21:02.860 回答