一段时间以来,我一直在尝试解决 WordPress 插件中的错误(我一直无法从开发人员那里得到回复)。该插件称为ImageFX。
基本上它为上传到 WordPress 的图像创建图像效果。我正在使用它将图像转换为灰度。但是,如果您创建一个页面,将其保存,然后再返回并尝试向其中添加特色图像,则该图像将不会创建 ImageFX 图像。你可以在这里看到有同样问题的人。
如何重现错误:
- 创建一个页面
- 上传并设置精选缩略图并发布页面(= ImageFX 制作人新缩略图正确)
- 等待一段时间(我想 1 天)。然后删除精选拇指并从图库中删除。
- 上传新的缩略图(= ImageFX 没有创建新的缩略图)。
或者,只需尝试将图像上传到旧帖子/页面。不会制作 ImageFX 缩略图。
我的猜测是这是有问题的代码。您可以在此处查看整个文件。
add_filter( 'wp_generate_attachment_metadata', 'imagefx_filter' );
/**
* Creates all ImageFX intermediate sizes of the image based on imagefx_options
*
* @param mixed $meta Metadata for attachment.
* @return mixed $meta Modified metadata for attachment.
*/
function imagefx_filter( $meta ) {
global $imagefx_filters;
$options = get_option( 'imagefx_options' );
foreach ( $meta['sizes'] as $size => $info ) {
if ( empty( $options['filter'][$size] ) ) continue;
$filter = $options['filter'][$size];
if ( empty( $imagefx_filters[$filter] ) ) continue;
$callback = $imagefx_filters[$filter];
$file = wp_upload_dir();
$file = trailingslashit( $file['path'] ) . $info['file'];
list( $orig_w, $orig_h, $orig_type ) = @getimagesize( $file );
if ( IMAGETYPE_JPEG === $orig_type || apply_filters( 'imagefx_image_type', false, $orig_type ) ) {
$image = wp_load_image( $file );
$callback( $image );
$slug = $options['slug'][$size];
if ( ! empty( $slug ) ) {
$newfile = substr( $file, 0, -4 ) . '-' . $slug . substr( $file, -4 );
$info['file'] = substr( $info['file'], 0, -4 ) . '-' . $slug . substr( $info['file'], -4 );
} else {
$newfile = $file;
}
if ( IMAGETYPE_JPEG == $orig_type )
imagejpeg( $image, $newfile );
do_action( 'imagefx_image_create', $image, $newfile, $orig_type );
$meta['sizes'][$size]['file'] = $info['file'];
}
}
return $meta;
}