Chia sẻ code WordPress lưu ảnh tự động khi copy từ web khác

Nếu các bạn muốn lưu ảnh nhanh vào website wordpress mà không cần lưu ảnh từ website khác rồi up lên web thì đoạn code dưới đây sẽ giúp bạn nhanh chóng. Chỉ cần copy và paste trực tiếp vào trình soạn văn bản của wordpress nhấn publish hoặc sửa chữa 1 bài nào đó thì ấn update là xong.
Ư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();

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!

Xem thêm: Bảo mật website với file .htaccess

Chia sẻ code WordPress lưu ảnh tự động khi copy từ web khác
5 (100%) 2 votes

Tác giả: Minh Nguyễn

Receive my simple gift of GOOD MORNING wrapped with sincerity, tied with care and sealed with a prayer to keep you safe and happy all day long! Take care! Hãy nhận một món quà đơn giản của anh vào mỗi buổi sáng, được bao bọc bởi sự chân thành, được buộc lại bằng sự quan tâm và được gắn vào với lời cầu xin cho em được bình yên và hạnh phúc mỗi ngày!