Code tự động lưu ảnh vào hosting khi copy bài từ trang khác

5/5 - (1 bình chọn)

share đoạn code 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 đó.

 

Chú ý: Nên kết hợp với

Cách đổi tên ảnh upload tự động theo title trong WordPress

Để 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();
5/5 - (1 bình chọn)


  1. qiyezp.com
    관리는 손을 내밀었다. “500걸음이 확실합니까, 아니면 눈을 감고 쏜 것입니까?”이 장엄한 북한의 리이 왕이 실제로…예기치 않게 류지에의 분파에 합류했습니까?

  2. I’m not sure why but this web site iis loading very sslow for me.

    Is anyone else having this problem or is it a problem on my end?
    I’ll check back later and see if the problem still exists.

    My homepage Adtgamer.Com.Br

  3. You can definitely see your skills within the work you write.
    The world hopes for even more passionate writers like you who are not afraid to say how they believe.
    Always go after your heart.

  4. qiyezp.com
    Fang Jifan은 흥분하여 말했습니다. “그럼 폐하 께서 과학 아카데미에 얼마나 많은 돈과 음식을 할당 하시겠습니까?”

  5. Greetings from Carolina! I’m bored at work so I decided to
    browse your site on my iphone during lunch break. I love the information you provide here and can’t wait to take a look when I
    get home. I’m shocked at how fast your blog loaded on my phone ..
    I’m not even using WIFI, just 3G .. Anyhow, fantastic blog!

    Here is my site Gainesville IT Services

Trả lời

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 *