我使用WordPress作为CMS系统,我想每包p
在某些HTML我需要在我的网站风格和定位标签。
我已经找到了一段代码,奇妙做到这一点对我来说,但现在的问题是矫枉过正。
这里是:
function tekst_wrapper($content) {
// match any p tags
$pattern = '~<p.*</p>~';
preg_match_all($pattern, $content, $matches);
foreach ($matches[0] as $match) {
// wrap matched p tag with div
$wrappedframe = '<div>' . $match . '</div>';
//replace original p tag with new in content
$content = preg_replace($pattern, $wrappedframe, $content);
}
return $content;
}
add_filter('the_content', 'tekst_wrapper');
这增加了围绕每个p标签的div标签。 但对于每一个p标签有在后,它开始在每个p标签增加更多的div标签。 所以说,我有四个p标签,生成的HTML将是:
<div> <div> <div> <div> <p>random text</p> </div> </div> </div> </div> <div> <div> <div> <div> <p>random text</p> </div> </div> </div> </div> <div> <div> <div> <div> <p>random text</p> </div> </div> </div> </div> <div> <div> <div> <div> <p>random text</p> </div> </div> </div> </div>
显然,这不是我所需要的,因为我只是希望每个p标签被包裹在一个div标签(或什么我替换HTML将是)。 现在我的PHP技能是不是很大,但我相信在foreach导致其添加div标签,每发现在比赛$matches
阵列? 有没有什么办法解决这一问题?