删除所有ID,类,风格从WordPress的帖子与SQL

ni65a41a  于 2023-05-16  发布在  WordPress
关注(0)|答案(1)|浏览(157)

我试图找到一种方法,用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数据库中的所有职位。

vbopmzt1

vbopmzt11#

MariaDB使用反斜杠字符(\),而不是美元符号($)作为正则表达式的反向引用字符。我猜你使用phpMyAdmin的Web主机使用的是MariaDB数据库。如果这是真的,你可以试试这个:

UPDATE `wpw8_posts`
SET `post_content` = REGEXP_REPLACE(`post_content`, '<(span|p|h2) ((id|class|style)=".*")+', '<\\1');

您可以在spanph2列表中添加多个HTML标签名称,以更新多个标签。

相关问题