我试图找到一种方法,用SQL命令从WordPress数据库中清理旧帖子
UPDATE `wpw8_posts` SET `post_content` = REGEXP_REPLACE(`post_content`, '<span id=".*?" class=".*?" style=".*?">.*?</span>', '<span>.*?</span>');
UPDATE `wpw8_posts` SET `post_content` = REGEXP_REPLACE(`post_content`, '<h2 id=".*?" class=".*?" style=".*?">.*?</h2>', '<h2>.*?</h2>');
UPDATE `wpw8_posts` SET `post_content` = REGEXP_REPLACE(`post_content`, '<p id=".*?" class=".*?" style=".*?">.*?</p>', '<p>.*?</p>');
我需要的是搜索并删除任何随机样式或id或类,以确保代码被清理干净。
现有:
<span id="geruhgk" class="fkhdge" style="gjfjgr">content</span>
<p class="fkhdge" style="gjfjgr" id="geruhgk">content</p>
<h2 class="fkhdge" id="geruhgk" style="gjfjgr">content</h2>
预期:
<span>content</span>
<p>content</p>
<h2>content</h2>
我尝试了以下SQL命令:
UPDATE `wp_posts` SET `post_content` = REGEXP_REPLACE(post_content,'<div class="(?s)(.*?)">(?s)(.*?)</div>','<div>(?s)(.*?)</div>')
那没用我不知道怎么写REGEXP。我需要编辑搜索像随机类或ID或样式,以及如何搜索和删除旧的ID,类,风格的WordPress数据库中的所有职位。
1条答案
按热度按时间vbopmzt11#
MariaDB使用反斜杠字符(
\
),而不是美元符号($
)作为正则表达式的反向引用字符。我猜你使用phpMyAdmin的Web主机使用的是MariaDB数据库。如果这是真的,你可以试试这个:您可以在span、p和h2列表中添加多个HTML标签名称,以更新多个标签。