Php 如何使用REGEX大量删除Wordpress帖子中应用的旧样式?
你好 我有一个大型杂志网站,我刚从Divi迁移到X Pro。每个帖子里都有一个指向另一个帖子的提示。总共有超过10000篇文章,所以这不是编辑可以在每篇文章中手动修复的。此元素已添加到帖子内容中Php 如何使用REGEX大量删除Wordpress帖子中应用的旧样式?,php,regex,linux,wordpress,Php,Regex,Linux,Wordpress,你好 我有一个大型杂志网站,我刚从Divi迁移到X Pro。每个帖子里都有一个指向另一个帖子的提示。总共有超过10000篇文章,所以这不是编辑可以在每篇文章中手动修复的。此元素已添加到帖子内容中 <blockquote> <h3>Te sugerimos</h3> <p class="entry-title"><a href="https://example.com/post-title/" targe
<blockquote>
<h3>Te sugerimos</h3>
<p class="entry-title"><a href="https://example.com/post-title/" target="_blank" rel="noopener noreferrer" style="outline: none;"><strong>POST TITLE</strong></a></p>
</blockquote>
苏杰里莫斯酒店
它应该只是一个h3
标记,然后是一个p
标记,没有条目标题
类,当然也没有块引号
标记
这些代码只是帖子的一部分。回到旧的Divi网站,编辑通常使用原生WP WYSIWYG编辑器撰写文章。是Divi,出于我不知道的原因,应用了所有这些……风格?不管怎么说,在我完成迁移后,一切都传递到了这个基于X-Pro的网站上
在这里,我检查了WP WYSIWYG中的每一篇文章,它们看起来都很正常,当我在网上看到任何文章时,都会有大量的文本。当我在PostEditor中检查HTML选项卡时,我看到了所有的垃圾代码
为了摆脱所有这些,我正在考虑使用REGEX,但老实说,我不知道如何告诉REGEX从p
标记中删除每个p
标记,该标记位于blockquote
标记中,我也会删除,但前提是它包含所有这些元素
这将是一个救命稻草。我快疯了
提前谢谢 首先,让我们定义匹配的正则表达式(PCRE兼容):
~<blockquote>\s*(.+?)<p class="entry-title">(.+?)<\/blockquote>~s
我想这是你想要的结果
现在,如何将其应用于所有内容?您有三个基本选项:
preg_replace
修改内容;最后更新数据库条目无论您选择哪种方式,请务必首先备份您的数据。先生,非常感谢您提供了如此深刻的信息。我能修好一切。很高兴听到“AlainAlemany”。您选择了哪条路线来应用正则表达式?
\1<p>\2
<blockquote>
<h3>Te sugerimos</h3>
<p class="entry-title"><a href="https://example.com/post-title/" target="_blank" rel="noopener noreferrer" style="outline: none;"><strong>POST TITLE</strong></a></p>
</blockquote>
<p>Other stuff</p>
<blockquote>Not matched</blockquote>
<h3>Te sugerimos</h3>
<p><a href="https://example.com/post-title/" target="_blank" rel="noopener noreferrer" style="outline: none;"><strong>POST TITLE</strong></a></p>
<p>Other stuff</p>
<blockquote>Not matched</blockquote>