这是一个令人沮丧的问题,因为我无法依赖内容编辑器对Wordpress/HTML足够精通,以理解他们输入的文本将如何被解析。。。
--编辑--
我仔细考虑了一下,重新考虑了我先前的回答。HTML5+附带Tidy extension, 如果您能够在服务器上使用此功能,则以下操作将起作用:
function cleanUpAutoP($content)
{
$tidy = new Tidy();
// Switch out the encoding an doctype in $tidyArgs to suit your use case
// \'show-body-only\' HTML to be parsed as a fragment
// rather than a whole document
$tidyArgs = array( \'doctype\' => \'html\',
\'input-encoding\' => \'utf8\',
\'output-encoding\' => \'utf8\',
\'show-body-only\' => true
);
// Return the repaired string
return $tidy->repairString($content, $tidyArgs);
}
这样,您就可以享受甜美的P标签的所有好处,而不用担心wpautop会把事情搞砸。其他选项
$tidyArgs
可以在中看到
the documentation.
如果由于任何原因无法使用Tidy,则应仍然有效:
function cleanUpAutoP($content) {
// Replace all OPENING paragraph tags with <br /><br />
$content = preg_replace(\'/<p[^>]*>/\', \'<br /><br />\', $content);
// Remove all CLOSING p tags
$content = str_replace(\'</p>\', \'\', $content);
return $content;
}
后一种方法的明显缺点是,我无法将样式应用于短代码中的p标记,但除非有更好的解决方案出现,或者问题在Wordpress中得到解决,否则就可以了!