【问题标题】:Hook into Wordpress image upload挂钩到 Wordpress 图片上传
【发布时间】:2015-04-19 06:23:16
【问题描述】:

对于我的 Wordpress 网站,我想在用户上传图片时以编程方式自动生成额外的照片尺寸。我希望这张照片也出现在媒体库中。

我写了一个小插件,我激活它来挂钩上传操作。 我的问题是,我应该使用哪个 wp 上传操作来生成这个额外大小的上传图片。

欢迎获取当前上传并编写额外图像条目的示例。

谢谢!

【问题讨论】:

    标签: php wordpress image hook


    【解决方案1】:

    你可以试试 wp_handle_upload_prefilter:

    add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
    function custom_upload_filter( $file ){
        $file['name'] = 'wordpress-is-awesome-' . $file['name'];
        return $file;
    }
    

    按照上面的钩子上传动作,并做一些像生成额外的图像:

    function generate_image($src_file, $dst_file) {
         $src_img = imagecreatefromgif($src_file);
         $w = imagesx($src_img);
         $h = imagesy($src_img);
    
         $new_width = 520;
         $new_height = floor($new_width * $h / $w);
    
         if(function_exists("imagecopyresampled")){
             $new_img = imagecreatetruecolor($new_width , $new_height);
             imagealphablending($new_img, false);
             imagecopyresampled($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $w, $h);
         } else {
             $new_img = imagecreate($new_width , $new_height);
             imagealphablending($new_img, false);
             imagecopyresized($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $w, $h);
         }
         imagesavealpha($new_img, true);    
         imagejpeg($new_img, $dst_file);
    
         imageDestroy($src_img);
         imageDestroy($new_img);
    
         return $dst_file;
    }
    

    【讨论】:

    • 原图上传完毕后,我们应该在哪里调用generate_image函数才能真正创建新的图像?我似乎无法解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2011-01-28
    • 2015-07-05
    • 2016-01-24
    • 1970-01-01
    • 2016-08-11
    • 2017-11-29
    相关资源
    最近更新 更多