WordPress批量删除文章图片链接

未知的原因,一位网友的WordPress在发表文章插入图片时会默认为图片添加指向原图的超链接,虽然通过修改数据库相关的键值可以改变这种默认行为,但是对于已经发表了的文章,如果手工去修改的话工作量非常大,因为他的图片数量已经超过了1万之多。

我的解决办法是把数据库导出来,用PHP正则替换清除掉图片的链接,代码如下:

<?php 
	$content = file_get_contents('./demo.sql');
	$newcontent = preg_replace('/<a[^>]*(?:http|https):\/\/www.domain.com\/wp-content[^>]*(?:\.jpg|\.gif|\.png)[^>]*>[\s\S]*(<img[^>]*>)[\s\S]*<\/a>/U', '$1', $content);
	$file = fopen('./demo.sql', 'w');
	fwrite($file, $newcontent);
	fclose($file);
	echo '替换完成!';
?>

将以上代码的数据库文件名称和域名换成你的,如果你的图片路径不同,需要修改相应的匹配规则。

注意:操作数据库有风险,请先备份好再操作!

如此,之前文章中的指向原图的超链接已经删除完了,但是以后发表文章还是会默认插入原图链接,怎么办呢?

请阅读:修改WordPress附件显示设置默认方式

阿里云