我正在尝试以编程方式用WP_Posts> post_content表中的新短代码替换已弃用的HTML。
目标:
替换
<span class="dropcap">%</span>
使用
[dropcap class='post-dropcap']%[/dropcap]
其中%是行中的任意字符
还有另一个问题:我需要找到代码开始的字符串位置,以便可以将新字符串放在相同的起始位置,因为此字符串模式之前有内容。我还需要为每行存储字符%,因为根据输入的单词,每行都有不同的字符。
我假设我需要获取匹配字符串'<'的strpos()。
然后,我可以将标签之间的值存储为别名。
然后,我需要删除匹配的字符串,并将其替换为新代码,并使用别名引用先前删除的字符。
答案 0 :(得分:0)
您可以通过执行以下操作获得%
值:
select substring_index(substring_index(col, '<', -1), '>', 1) as central_value
然后可以串联以获得所需的内容:
select concat('[dropcap class=''post-dropcap'']',
substring_index(substring_index(col, '<', -1), '>', 1),
'[/dropcap]'
)
答案 1 :(得分:0)
从MySQL 8开始,您应该可以使用REGEXP_REPLACE
来完成此任务。
在每一行HTML中,您都将寻找字符串'<span class="dropcap">(.)</span>'
,其中的点代表任何字符,并且括号内是用来记住此内容的。
您将替换为'\[dropcap class=''post-dropcap''\]\\1\[/dropcap\]'
,其中\\1
代表我们刚刚记住的字符。
update html_lines
set line = regexp_replace(line, '<span class="dropcap">(.)</span>',
'\[dropcap class=''post-dropcap''\]\\1\[/dropcap\]')
这也适用于一行中多次出现该字符串。