Code tự động lưu ảnh vào host khi copy bài từ nguồn khác

Fullcode chỉ cần up lên host là giống demo không cần cài đặt. Xem ngay

Xem thêm 100+ mẫu landing page đẹp chuẩn seo bằng WordPress tại đây.

CAM KẾT WEB ĐÃ TỐI ƯU CHUẨN SEO, KHÔNG VIRUS, KHÔNG MÃ ĐỘC

Ngày nay việc copy bài viết từ một trang khác rất phổ biến, những vấn để làm các bạn quan tâm đó là sau khi copy lại phải sửa lại link ảnh phòng trường hợp website bạn copy bị die. Hôm nay mình sẽ hướng dẫn các bạn tự động lưu ảnh vào host khi copy bài từ nguồn khác.

Ưu điểm của code này.

Tự động lưu tất cả hình ảnh khi copy từ nguồn khác chỉ thông qua 1 lần bấm save. Code ổn định không bị lỗi trên các  phiên bản wordpress

Nhược điểm:

Nó sẽ tự động lưu nên mình ko kiểm soát được số lượng, dung lương cũng như tên của các file ảnh đó.

Để sử đụng bạn copy đoạn code sau vào file functions.php trong thư mục theme bạn đang sử dụng nhé

class Auto_Save_Images{
 
    function __construct(){     
        
        add_filter( 'content_save_pre',array($this,'post_save_images') ); 
    }
    
    function post_save_images( $content ){
        if( ($_POST['save'] || $_POST['publish'] )){
            set_time_limit(240);
            global $post;
            $post_id=$post->ID;
            $preg=preg_match_all('/<img.*?src="(.*?)"/',stripslashes($content),$matches);
            if($preg){
                foreach($matches[1] as $image_url){
                    if(empty($image_url)) continue;
                    $pos=strpos($image_url,$_SERVER['HTTP_HOST']);
                    if($pos===false){
                        $res=$this->save_images($image_url,$post_id);
                        $replace=$res['url'];
                        $content=str_replace($image_url,$replace,$content);
                    }
                }
            }
        }
        remove_filter( 'content_save_pre', array( $this, 'post_save_images' ) );
        return $content;
    }
    
    function save_images($image_url,$post_id){
        $file=file_get_contents($image_url);
        $post = get_post($post_id);
        $posttitle = $post->post_title;
        $postname = sanitize_title($posttitle);
        $im_name = "$postname-$post_id.jpg";
        $res=wp_upload_bits($im_name,'',$file);
        $this->insert_attachment($res['file'],$post_id);
        return $res;
    }
    
    function insert_attachment($file,$id){
        $dirs=wp_upload_dir();
        $filetype=wp_check_filetype($file);
        $attachment=array(
            'guid'=>$dirs['baseurl'].'/'._wp_relative_upload_path($file),
            'post_mime_type'=>$filetype['type'],
            'post_title'=>preg_replace('/.[^.]+$/','',basename($file)),
            'post_content'=>'',
            'post_status'=>'inherit'
        );
        $attach_id=wp_insert_attachment($attachment,$file,$id);
        $attach_data=wp_generate_attachment_metadata($attach_id,$file);
        wp_update_attachment_metadata($attach_id,$attach_data);
        return $attach_id;
    }
}
new Auto_Save_Images();

Ngoài các sự dụng đoạn code này các bạn có thể sử dụng plugins, chức năng cũng tương tự

QQWorld Auto Save Images

Chúc các bạn thành công!

Quà tặng khủng khi mua Fullcode tại Chothemewordpress.com

Đọc kỹ Điều khoản sử dụngCâu hỏi thường gặp trước khi mua hàng.

Làm việc từ 8h30 đến 23h30, không nghỉ lễ tết, T7, CN. Hotline: 0982.961.390

Mẹo: Bạn muốn tìm Fullcode điện thoại hãy đánh dien thoai không dấu vào ô tìm kiếm.

Leave a Reply

Nhắn tin qua Facebook Zalo: 0986989626
Hotline: 0982.961.390
+250 mẫu giảm 10% (Mã FC10) hoặc Quà tặng khủngXem ngay
+ +