在图片文件名的帖子内容中搜索和替换REGEX

时间:2014-06-06 15:14:56

标签: php mysql regex wordpress blogger

我在将图像从Blogger导入到Wordpress时遇到了问题,并且它以某种方式使用了所有中等大小的尺寸来显示我的内联帖子内容图片,这些图片太小了。

我试图在我的Wordpress媒体设置中调整我的中等尺寸尺寸,然后运行Regenerate Thumbnails插件,但由于某种原因,我博客导入的帖子中的图片仍然太小(使用旧的媒体图像尺寸尺寸)。

我一直试图想办法解决这个问题,我认为最简单的方法就是在帖子内容中搜索和替换最终有尺寸的图片标记,例如:

http://example.com/wp-content/uploads/2014/05/Comfy-Cozy-Couture-Design-Decoded-163x300.png

并将其替换为:

http://example.com/wp-content/uploads/2014/05/Comfy-Cozy-Couture-Design-Decoded.png

通过某种MySQL搜索并使用REGEX替换。无论图像文件名是什么,无论最后的尺寸如何,我都希望它能够正常工作。

所以:

http://example.com/wp-content/uploads/2014/05/an-image-filename-123x456.png

会变成:

http://example.com/wp-content/uploads/2014/05/an-image-filename.png

无论扩展名如何(png / gif / jpg)都可以。

在理想情况下,我不会完全删除尺寸,只是将尺寸增大到我的大媒体文件大小(最大宽度:600,最大高度:∞),保持与旧尺寸。但我觉得这种查询要困难得多。而且我相信我的用户已经开始上传所有网络就绪尺寸的图片。

有没有人以前做过这件事或知道我的问题的修复程序?或者知道另一个更简单的方法,而无需从博客中重新导入2000多个帖子?

提前致谢!

修改

或者如果有人知道为什么Regen。缩略图不起作用。我的图片已附在帖子上,但这是我的图片标记看起来像吐出来的那样:

<img alt="Comfy Cozy Couture" class="aligncenter size-full wp-image-3654" src="http://example.com/wp-content/uploads/2014/05/Comfy-Cozy-Couture-Design-Decoded-163x300.png" height="1100" width="600" />

它很奇怪,因为它在宽度和高度上都有正确的尺寸,但是图像源在文件名中有旧的硬编码尺寸。

此前我曾尝试用JS完成所有这些,但我想要一个更永久的解决方案。这就是我用JS做的事情:

$('.entry-content img').prop('src', function (i, v) {
  return v.replace(/-\d+x\d+\.(jpg|png|gif)$/, '.$1');
});

1 个答案:

答案 0 :(得分:2)

我能够使用WordPress搜索Regrex插件(https://wordpress.org/plugins/search-regex/)和以下搜索模式执行类似的搜索和替换:

.-\d+x\d*.

如果您尝试此操作,请输入.- \ d + x \ d *。在您的搜索模式中,并确保在复选框中选择“正则表达式”。我没有替换模式(基本上删除了字符串的“ - ### x ###”部分)。

该插件可让您在提交前预览结果。搜索将显示您的模式正在做什么。替换将预览替换。替换和保存完全听起来像: - )