我正在尝试在我的数据库中进行全局搜索替换,由于以下代码,数据库中有很多带有双回车符的文章:
<p> </p>
我想在我的 WordPress 博客中替换它,这样就不会出现......什么都没有,这样我就可以删除 CR。我已经在我的数据库中尝试过了
UPDATE wp_posts set post_content = replace (post_content,'<p> </p>','');
但不起作用。为什么?我是否必须添加特殊想法来考虑<p>
和之间的空间</p>
?
嗯。Jon Angliss 和 Wim 的观点都很好。Jon,正如您可能猜到的那样,数据库中没有显示包含该文本字符串的条目。因此 post_content 字段中一定发生了一些事情。
Wim,著名的那个之前已经被替换了,但仍然有数百个帖子由于某种原因在 p 和 /p 标签之间存在差异。
我搜索了其中一篇帖子,发现其中有以下错误:
mysql> select * from wp_posts where post_title like '%3DVisionLive%';
查看 wp_content 字段,这是帖子的一小部分:
Phil Eisler, responsable de la divisi?n 3D Vision.?</p>
<p>?</p>
<p>Este portal ser? por tanto
终端上没有显示西班牙语波浪符号(重音符号),并且 p 和 /p 标签之间没有空格,而是引号。我尝试替换<p>?</p>
,但仍然没有结果。那里有一些字符(或几个),但我不知道如何发现。也许是我的终端的字符集,但我从 phpmyadmin 访问了数据库,在这种情况下,p 和 /p 之间有一个空格字符。很奇怪。
好吧,关于这个还有更多信息在尝试了几件事之后,我做出了这样的替换:
UPDATE wp_posts set post_content = replace (post_content,' ',' ');
现在我的文章中出现了
<p> </p>
而不是之前的字符串,它导致段落之间出现额外的 CR,看起来真的毫无用处,而且很差劲。所以我又回到了开始。我需要做的是用空字符或空格替换。
它是否必须带有 & 符号,在这种情况下,我应该使用 之类的东西或类似的东西吗?
嗯。Jon Angliss 和 Wim 的观点都很好。Jon,正如您可能猜到的那样,数据库中没有显示包含该文本字符串的条目。因此 post_content 字段中一定发生了一些事情。
Wim,著名的那个之前已经被替换了,但仍然有数百个帖子由于某种原因在 p 和 /p 标签之间存在差异。
我搜索了其中一篇帖子,发现其中有以下错误:
mysql> select * from wp_posts where post_title like '%3DVisionLive%';
查看 wp_content 字段,这是帖子的一小部分:
Phil Eisler, responsable de la divisi?n 3D Vision.?</p>
<p>?</p>
<p>Este portal ser? por tanto
终端上没有显示西班牙语波浪符号(重音符号),并且 p 和 /p 标签之间没有空格,而是引号。我尝试替换<p>?</p>
,但仍然没有结果。那里有一些字符(或几个),但我不知道如何发现。也许是我的终端的字符集,但我从 phpmyadmin 访问了数据库,在这种情况下,p 和 /p 之间有一个空格字符。很奇怪。
答案1
我首先要检查的是数据库中的内容是否如您所想的那样。例如,您确实有包含您所使用的确切字符串的帖子吗?您是否尝试过进行选择以查看该字符串是否匹配?
select ID from wp_posts where post_content like '%<p> </p>%'
如果您没有收到任何回复,则说明您的字符串不完全匹配,您需要开始找出字符串中的真实内容,也许可以导出到文件并查看其中的内容。另外,不要忘记代替函数区分大小写,因此 <P> 与 <p> 不同。
答案2
你可以尝试
UPDATE wp_posts set post_content = replace (post_content,'<p>\n</p>','');
和/或
UPDATE wp_posts set post_content = replace (post_content,'<p>\n\n</p>','');
答案3
和标签
之间不是有一个吗?至少我的 TinyMCE 生成的内容是这样的。<p>
</p>