我有一个波斯语的WordPress网站。它被黑了,网站上的每个帖子都有一些广告链接。
我想从我的网站中删除所有这些链接。我可以在这些链接中找到的唯一模式是它们包含英文字符。
我需要一个像这样的sql命令:
update wp_posts set post_content =
replace(post_content,'Text to find','text to replace with');
但我需要它来定位其中包含英文字符的锚链接。 我也需要在ACF字段上运行它。
答案 0 :(得分:0)
如果您可以在PHP(更简单)中执行此操作,则可以使用:
preg_replace('/[^\x{0600}–\x{06FF}\x{0750}-\x{077F}\x{08A0}–\x{08FF}\x{FB50}–\x{FDFF}\x{FE70}–\x{FEFF}\x{10E60}–\x{10E7F}\x{1EE00}—\x{1EEFF}]/u', '', $my_content_from_db);
(我假设您删除的不是波斯语,而是转换为不属于阿拉伯语Unicode字符集的所有内容。)
(我还假设你能够从数据库中提取所有帖子,修改它们并将它们写回数据库。如果没有,我可以用更多信息编辑这个答案。)
如果您必须在SQL中执行此操作,请尝试使用相同的正则表达式the library in this answer。
请注意,这将删除不在阿拉伯语脚本中的所有。人们有时会在文本中使用外语单词(在您的情况下,可能是非阿拉伯字符的单词)。这些将被删除。