我一直试图找到WordPress插件中的错误解决方案一段时间(我无法得到开发人员的回复)。该插件名为ImageFX。
基本上它会为上传到WordPress的图像创建图像效果。我用它将图像变成灰度。但是,如果您创建一个页面,保存它然后再返回并尝试向其添加特色图像,该图像将不会创建一个ImageFX图像。您可以看到拥有same problem here的人。
如何重现错误:
或者,只需尝试将图像上传到旧帖子/页面即可。不会制作ImageFX缩略图。
我的猜测是这是违法的代码。 You can see the whole file here
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;
}
如果你认为你知道如何解决这个问题,但对于Stackoverflow来说这个工作太大了,请联系我,我公司会为你付出时间。
谢谢你们!
答案 0 :(得分:1)
我认为您在遇到此问题之前实际上是在看到过滤后的图像吗?例如,他们是否在媒体库中?
如果是这样,根本不是插件的问题。您需要将过滤器设置为缩略图后(或任何您的特色图片调用)。这样,您的主题就会调出正确的缩略图。
检查有问题的缩略图的文件名,可能与媒体库中的“正确”过滤图像不同。