我想为 WordPress 创建一个插件,将所有非 webp 图像转换为 webp。
我创建了一个函数,它将文件路径作为参数,并从该文件创建一个新的 webp 图像。
现在我陷入困境,如何在所有使用旧图像的帖子中用新图像替换这个旧图像?
您可以为此使用过滤器。 WordPress 使用操作和过滤器,以便开发人员可以修改其功能。在这种情况下,请查看
get_attached_file
和 wp_get_original_image_path
。
对于这两个函数,您都可以使用过滤器来修改它们的结果。在您的情况下,如果请求的文件之前以请求的格式和大小压缩过,您将更改文件扩展名。
注册过滤器,应在
get_attached_file
函数运行时调用,如下所示:
function get_attached_file_callback( $file, $attachment_id ) {
// modify the file path
return $file;
}
add_filter( 'get_attached_file', 'get_attached_file_callback', 10, 2 );