问题描述

有没有办法调整图像的大小,他们将显示在帖子中的大小?我有用户导入大图像,然后在可视化编辑器中调整大小。这很容易,因为它们只需拖动图像,直到它是所需的尺寸,而无需先打开图像编辑器,调整图像大小,保存图像,并将其作为单独的附件上传。当然,这有时会导致一个 100px 宽的图像,而在现实中则是 1500 像素。

当保存新帖子时是否有插件?我想保留现有的 full-size 映像 (用于链接或更改大小),但只需添加一个额外的大小 (并将其保存在_wp_attachment_metadata 对象中),因此此帖子的图像大小正确,并且对 full-size 附件。

当然,所有现有职位也应该处理一次。 <img> 标签可能只有一个 width,只是一个 height,或者没有一个:这应该被清理,所以他们都有正确的 widthheight 和那个大小的图像。

最佳解决方案

我创建了两个插件,可以一起解决我的需要。他们目前处于早期阶段,欢迎所有评论。

基本插件是 On-Demand Resizer 。此插件监视上传目录中的 non-existing 文件的请求,并根据需要创建请求大小的映像。例如,image-200x100.jpg 将创建并返回 image.jpg,但调整为 200×100 像素。图像由该名称保存在目录中,所以进一步的请求由服务器直接处理。

第二个插件 “调整大小”img 标签修改<img> 标签,使其 src 属性包括宽度和/或高度数据。这允许第一个插件提供正确的图像。他们一起做我想要的,我只需要创建一个 run-once 函数来转换所有现有的帖子,但这应该很简单 (我不想挂钩到 the_content,应该只运行一次) 。

第三个”bonus” 插件,虚拟中间图像,在 WordPress 中上传新图像时拦截中间图像的创建。由于它们仍然是由第一个插件创建的,如果需要,这允许您指定多个图像大小,而不占用磁盘空间,除非实际使用它们。这不是第一次工作,但这是一个容易的补充,它突出显示了我仍然需要解决 WordPress 图像编辑器的事实,但我会这样做,当我创建 my thumbnail editor,这也将使用第一个插件。

次佳解决方案

我搜索了"resize""crop"(后者用于 another question) 的插件目录,并在 a public Google spreadsheet 中注明了我的发现。插件搜索在其结果编号中非常混乱 ("resize"搜索的最后一页显示 “显示 273 个插件的 145-150”),所以我可能错过了一些。 Semi-related 注意:大家似乎认为世界需要另一个幻灯片插件。几乎似乎意识到,content_save_pre 可能是比 the_content 更好的过滤器做重解析。

我没有测试任何这些插件,但这里是一个似乎做我想要的插件的列表。我在括号中添加了 “兼容的” 版本号。

Personal thoughts: The first four rewrite the URL to a dynamic page (something like /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50), with varying forms of caching. I prefer a real image that is created as-needed, similar to the approach ImageScaler takes. However, I would split this up (and include hakre’s suggestion in the comments) and first rewrite all URLs from /wp-content/uploads/2010/11/image.jpg to /wp-content/uploads/2010/11/image-100x50.jpg, and then let a script create the missing images. The first request for this image creates the image, all subsequent requests use this created image. This also allows me to split the functionality across different plugins. I will post this solution in a separate answer.

这些插件将图像限制在一定的最大尺寸 (这与指定 $content_width 有什么不同):

以下插件是有趣的,其他原因:

这是一个社区维基帖子,所以如果您发现新的插件,它可以更新。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。