我发现在Wordpress中设置了媒体中等大小为(300×300),但是WordPress实际裁剪的裁剪比例是(300×130),为什么会出现此情况,如何能让Wordpress裁剪成我设置的(300×300)?我在使用Wordpress Spectra插件,文章在使用特色图片的时候,选择了Medium size,但是图片显示的尺寸并不是300*300,但是我在Wordpress媒体库设置的Medium size 是300*300。

在WordPress中设置了中等大小为300×300,但实际生成的图片却是300×130,这确实令人困惑。这通常是因为WordPress的默认裁剪行为是保持原图比例进行缩放,而不是强制裁剪成*尺寸。下面我会帮你分析原因并提供解决方法。
为了更清晰地了解可能的原因和解决方案,请看下表:
🛠️ 实施解决方案
1. 启用中等大小的强制裁剪(亲测生效)
*直接的方法是告诉WordPress你希望将”中等大小”也进行强制裁剪,而不仅仅是缩放。这需要通过代码来实现。
将以下代码添加到你当前主题的 functions.php
文件末尾(建议使用子主题进行操作,避免主题更新时修改被覆盖):
// 强制中等尺寸图片裁剪为*尺寸
if (false === get_option("medium_crop")) {
add_option("medium_crop", "1");
} else {
update_option("medium_crop", "1");
}
媒体库图片尺寸,添加并保存后,新上传的图片其中等尺寸应该就会被裁剪为300×300像素了。
2. 使用自定义图片尺寸(更灵活的方法)
如果你需要多个特定尺寸的图片,并且希望更灵活地控制,自定义图片尺寸是更好的选择。
同样,将以下代码添加到你的主题的 functions.php
文件中:
php
// 添加自定义图片尺寸 function my_custom_image_sizes() { add_image_size( 'my-custom-square', 300, 300, true ); // 300x300像素,硬裁剪 // 你可以继续添加其他自定义尺寸,例如: // add_image_size( 'my-custom-banner', 800, 400, true ); } add_action( 'after_setup_theme', 'my_custom_image_sizes' );
这段代码注册了一个名为 my-custom-square
的新图片尺寸(300×300,硬裁剪)。在上传图片时,WordPress会自动按照这个设置生成相应的图片。
在使用这个自定义尺寸的地方(如文章模板、主题文件或页面构建器中),你需要调用这个新的尺寸名称,而不是默认的”medium”。
3. 重新生成缩略图(关键步骤!)
重要提示:无论你采用*种还是第二种方法,之前的图片都不会自动重新生成。WordPress只会在上传图片时生成各种尺寸的图片。
对于已经存在于媒体库中的图片,你需要使用 「Regenerate Thumbnails」 这类插件来重新处理所有图片,让新的尺寸设置生效。
- 安装并激活 「Regenerate Thumbnails」 插件。
- 进入 工具 -> 重新生成缩略图。
- 点击 “为所有附件重新生成缩略图” 并耐心等待过程完成。
⚠️ 注意事项
- 原图尺寸:如果你的原图宽度或高度小于300px,WordPress默认不会放大图片。确保上传的图片至少有一条边大于或等于300像素。
- 主题或插件冲突:极少情况下,某些主题或插件可能会干扰图片的生成过程。如果问题依旧,请尝试按照前表所述,暂时切换到默认主题并禁用所有插件进行测试,以排除冲突。
- 检查实际调用:确保你在前台显示图片时(例如通过Spectra插件设置),调用的是”medium”尺寸或你自定义的尺寸名称。
💎 总结
出现设置的300×300变成300×130,核心原因是WordPress对”中等大小”默认采用按比例缩放。要使其强制裁剪为*尺寸,你需要:
- 代码配置:通过在
functions.php
中添加代码启用medium_crop
选项或创建自定义图片尺寸。 - 重新生成:使用「Regenerate Thumbnails」插件重新处理现有图片。
- 检查原图:确保原始图片尺寸足够大。
希望这些解释和步骤能帮助你解决问题。如果还有疑问,欢迎继续提问。