You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL批量删除WordPress文章中指定的su系列短代码?

解决方案

你执行的SQL未生效的核心原因是目标短代码在数据库中存储时,两个短代码之间存在换行符、多余空格,你写的匹配字符串直接拼接了两个短代码,没有包含中间的空白字符,无法命中实际存储的内容。可按以下方案操作,执行所有SQL前请先备份wp_posts表,避免数据丢失;如果你修改过WordPress默认表前缀,将语句中的wp_posts替换为实际的文章表名。

方案1:分开替换两个短代码(最稳妥)

无需考虑两个短代码的位置、间隔关系,分别执行两条替换语句即可:

-- 替换空的su_quote短代码
UPDATE wp_posts SET post_content = REPLACE(post_content, '[su_quote][/su_quote]', '');
-- 替换指定参数的su_divider短代码
UPDATE wp_posts SET post_content = REPLACE(post_content, '[su_divider top="no" style="dotted" divider_color="#c9c9c9"]', '');

如果执行后仍无匹配,可检查数据库中存储的短代码是否存在参数顺序变化、多余空格、引号类型不同的情况,调整匹配字符串后重新执行即可。

方案2:匹配连续出现的短代码(适配中间有换行的场景)

如果你仅需要删除连续出现的这两个短代码,可在匹配字符串中加入换行符:

-- 适配Linux换行符
UPDATE wp_posts SET post_content = REPLACE(post_content, '[su_quote][/su_quote]\n[su_divider top="no" style="dotted" divider_color="#c9c9c9"]', '');
-- 如果上面的语句未生效,尝试适配Windows换行符
UPDATE wp_posts SET post_content = REPLACE(post_content, '[su_quote][/su_quote]\r\n[su_divider top="no" style="dotted" divider_color="#c9c9c9"]', '');

方案3:正则模糊匹配(适配短代码参数不固定的场景,仅MySQL 8.0+支持)

如果无法确定su_divider的参数是否完全一致,可使用正则替换匹配所有符合规则的短代码:

-- 替换所有空su_quote短代码
UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '\\[su_quote\\]\\[/su_quote\\]', '');
-- 替换所有su_divider短代码,忽略参数差异
UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '\\[su_divider[^\\]]*\\]', '');

内容的提问来源于stack exchange,提问作者didi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:27:04