첨부이미지 크기 줄여서 저장하는 방법

안녕하세요.

thumbnail로 첨부하는 이미지를 저장할때 (upload시점에) size를 줄여서 저장하려면 어떻게 해야 하는지 궁금합니다.

kboard_resize()라는 함수는 이미 upload되어 있는 이미지를 resize하는 함수인거 같아서 용도에 안맞는거 같구요..

가이드 부탁드립니다. 항상 도움주셔서 감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • /kboard/class/KBContent.class.php 파일을 수정해주셔야 합니다.

    public function setThumbnail($uid){
            global $wpdb;
            if(!$this->thumbnail_store_path) die(__('No upload path. Please enter board ID and initialize.', 'kboard'));
            
            if($_FILES['thumbnail']['tmp_name']){
                $file = new KBFileHandler();
                $file->setPath($this->thumbnail_store_path);
                $upload = $file->upload('thumbnail');
                $original_name = addslashes($upload['original_name']);
                $file = addslashes($upload['path'] . $upload['stored_name']);
                
                if($original_name){
                    $this->removeThumbnail($uid);
                    $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `thumbnail_file`='$file', `thumbnail_name`='$original_name' WHERE `uid`='$uid'");
                }
            }
    }

    위 코드를 찾아서 아래처럼 코드를 추가해주세요.

    public function setThumbnail($uid){
            global $wpdb;
            if(!$this->thumbnail_store_path) die(__('No upload path. Please enter board ID and initialize.', 'kboard'));
            
            if($_FILES['thumbnail']['tmp_name']){
                $file = new KBFileHandler();
                $file->setPath($this->thumbnail_store_path);
                $upload = $file->upload('thumbnail');
                $original_name = addslashes($upload['original_name']);
                $file = addslashes($upload['path'] . $upload['stored_name']);
                
                if($original_name){
                    
                    $upload_dir = wp_upload_dir();
                    $file_path = explode('/wp-content/uploads', $upload['path'] . $upload['stored_name']);
                    $file_path = strtolower($upload_dir['basedir'] . end($file_path));
                    $image_editor = wp_get_image_editor($file_path);
                    if(!is_wp_error($image_editor)){
                        $image_editor->resize(300, 300, true);
                        $image_editor->save($file_path);
                    }

                    
                    $this->removeThumbnail($uid);
                    $wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `thumbnail_file`='$file', `thumbnail_name`='$original_name' WHERE `uid`='$uid'");
                }
            }
    }

     

    width 값과 height 값을 수정하시면 이미지 크기를 조절하실 수 있습니다.

    $image_editor->resize(300, 300, true);

    KBoard에 기본적으로 해당 기능을 추가해보겠습니다.

    상세한 설명은 아래 링크를 확인 부탁드립니다^^

    https://codex.wordpress.org/Function_Reference/wp_get_image_editor

    https://codex.wordpress.org/Class_Reference/WP_Image_Editor

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요