WordPress ImageFX插件 - 不为旧帖子创建图像

时间:2012-10-23 21:54:06

标签: wordpress wordpress-plugin

我一直试图找到WordPress插件中的错误解决方案一段时间(我无法得到开发人员的回复)。该插件名为ImageFX

基本上它会为上传到WordPress的图像创建图像效果。我用它将图像变成灰度。但是,如果您创建一个页面,保存它然后再返回并尝试向其添加特色图像,该图像将不会创建一个ImageFX图像。您可以看到拥有same problem here的人。

如何重现错误:

  1. 创建页面
  2. 上传并设置精选缩略图和发布页面(= ImageFX制作者新缩略图正确)
  3. 等一段时间(我想1天)。然后删除精选的拇指并从库中删除。
  4. 上传新缩略图(=没有ImageFX创建的新缩略图)。
  5. 或者,只需尝试将图像上传到旧帖子/页面即可。不会制作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来说这个工作太大了,请联系我,我公司会为你付出时间。

    谢谢你们!

1 个答案:

答案 0 :(得分:1)

我认为您在遇到此问题之前实际上是在看到过滤后的图像吗?例如,他们是否在媒体库中?

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

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