我正试图从Wordpress的大量帖子中删除一个特定的div及其内容。我不希望仅仅使用"display:none"来使div不可见,而是希望它被永久删除。这就是为什么我更喜欢从SQL数据库中删除div及其内容。div如下所示:
<div class="inhoud"><h3>abc bac</h3><ul>
<li><a href="a">abc bac</a></li>
<li><a href="b">abc bac</a></li>
<li><a href="c">abc bac</a></li></ul>
</div>
简而言之,我希望从posts内容中删除所有具有类inhoud
的div。
我已经尝试了几种方法,包括这个正则表达式:
UPDATE `wp_posts` SET `post_content` = REGEXP_REPLACE(post_content,'<div class="inhoud">.*?</div>','')
这并没有起到多大作用。我做错了什么?正确的方法是什么?
为什么不对所有结果执行一个php foreach从该表中,然后用简单的regex:替换该字段的结果
$str = '<div class="inhoud"><h3>abc bac</h3><ul> <li><a href="a">abc bac</a></li> <li><a href="b">abc bac</a></li> <li><a href="c">abc bac</a></li></ul> </div> <div> your next data</div>';
$str = preg_replace('~<div([^>]*)class="(.*?)inhoud(.*?)">(.*?)</div>~im', '', $str);
几个小时后,我终于完成了这个SQL更新:
UPDATE `wp_posts` SET `post_content` = REGEXP_REPLACE(post_content,'<div class="inhoud">(?s)(.*?)</div>','')