【发布时间】:2011-05-08 17:12:22
【问题描述】:
我在为 attachment_fields_to_save 添加过滤器时出现了奇怪的行为,当我保存图像时,它不想保存图像元数据,例如标题、描述和标题。
为什么我需要添加这个过滤器?因为我有很多使用此代码的自定义尺寸:
add_image_size("imagesize-940x360", 940, 360, true);
而且图像可能无法正确放置在合适的位置,因此用户需要使用 Wordpress 超棒的工具来编辑图像,例如裁剪和缩放。
出于某种愚蠢的原因(或者这可能是错误),Wordpress 不会为自定义图像大小生成图像。
为了实现自定义尺寸的生成,当用户在 Wordpress 图像编辑器中按下保存按钮时,我需要添加过滤器。这是我一直在使用的代码:
add_filter("attachment_fields_to_save", "rl_regenerate_image", 99, 2);
function rl_regenerate_image($post, $attachment)
{
$id = $post['ID'];
$fullsizepath = get_attached_file($id);
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $fullsizepath));
return true;
}
当用户正确编辑图像时,上面的代码会生成自定义尺寸,但遗憾的是它没有保存所有更新的元数据图像,例如标题、标题和描述。
你们知道如何解决这个问题吗?所以我想要实现的是如何为自定义尺寸生成“编辑”图像并正确保存元数据。
提前致谢!
【问题讨论】:
-
“Wordpress 不会为自定义图像大小生成图像”确实是一个错误,请参阅core.trac.wordpress.org/ticket/19889。