Sao chép nội dung là một điều không ai thúc đẩy, điều này có thể là vi phạm bản quyền. Website của chính mình cũng từng bị sao chép Content y nguyên. Nhưng trong một vài trường hợp sao chép Content và spin ra để nuôi các website vệ tinh lại là một điều tuyệt vời. Với WordPress bạn thực sự có thể làm ra nhiều nội dung khác nhau sử dụng spin, mặc dù thế hình ảnh của bạn thì vẫn lấy từ một website, điều này cũng gây ra một vài hạn chế, để hóa giải việc đó trong bài viết bên dưới mình sẽ share với bạn phương pháp tự động hóa upload hình ảnh khi bạn sao chép hình ảnh và nhấn publish.
Chèn mã vào file functions.php
Đoạn class dưới đây mình thu thập được ở trên mạng chứ không phải do mình viết, tuy nhiên mình đã kiểm tra toàn bộ đoạn mã và không có vấn đề gì, hoạt động chính xác và nhanh chóng không làm chập thời gian upload. Các bạn chỉ việc copy và chèn vào cuối file functions.php
của theme là được.
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();
Đoạn mã này hỗ trợ tải hình ảnh được copy vào bài viết lên chính website đó khi nhấn publish. Mọi định dạng sẽ được giữ nguyên chỉ có link hình ảnh được thay đổi từ website khác thành website của bạn.
Một lần nữa mình muốn nói là việc này không khuyến khích bạn đi copy nội dung của người khác khi chưa có sự đồng ý của họ, nhất là bản quyền về hình ảnh.
Xem Thêm: Hướng dẫn khai báo sitemap bằng rank math
Nguồn: tuandc.com