0

一段时间以来,我一直在尝试解决 WordPress 插件中的错误(我一直无法从开发人员那里得到回复)。该插件称为ImageFX

基本上它为上传到 WordPress 的图像创建图像效果。我正在使用它将图像转换为灰度。但是,如果您创建一个页面,将其保存,然后再返回并尝试向其中添加特色图像,则该图像将不会创建 ImageFX 图像。你可以在这里看到有同样问题的人。

如何重现错误:

  1. 创建一个页面
  2. 上传并设置精选缩略图并发布页面(= ImageFX 制作人新缩略图正确)
  3. 等待一段时间(我想 1 天)。然后删除精选拇指并从图库中删除。
  4. 上传新的缩略图(= 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;
}
4

1 回答 1

1

我假设您在遇到此问题之前实际上看到的是经过过滤的图像?例如,它们是否在媒体库中?

如果是这样,这根本不是插件的问题。您需要将过滤器设置为处理后缩略图(或您的特色图像所调用的任何内容)。这样,您的主题将调用正确的缩略图。

检查有问题的缩略图的文件名,它们可能与媒体库中“正确”的过滤图像不同。

于 2012-10-25T23:24:59.540 回答