Tự động tải hình ảnh về và upload lên website Wordpress của bạn

Tự động tải hình ảnh về và upload lên website WordPress của bạn

Chào mọi người. hôm nay mình chia sẻ đến các bạn chuyên đi copy content từ website khác, mà lười save từng hình ảnh ? .
Khi bạn Copy bài viết từ các nguồn khác nhau về Web của mình thì phần Link ảnh vẫn ở Web gốc. Điều này có ưu điểm là bạn sẽ tiết kiệm dung lượng và băng thông cho Hosting. Nhược điểm của nó là không tốt cho SEO và bạn sẽ phải phụ thuộc vào web gốc. Nếu nó bị die thì web của bạn bị ảnh hưởng load chậm hoặc không load được ảnh.

Copy đoạn code bên dưới vào file funtions.php

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();

Từ khoá: auto save images

Cre: Son Auto Save Images plugin

Quét mã QR để đọc bài viết này để xem tiếp trên điện thoại

QR: Tự động tải hình ảnh về và upload lên website WordPress của bạn

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *