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['//', $content, $all_img_tags ]; if [ $all_img_tags ] { foreach [ $all_img_tags[ 0 ] as $img_tag ] { // find class attribute and catch its value preg_match[ '/]*class\s*=\s*[\'"][[^\'"]+][\'"][^>]*>/i', $img_tag, $img_class ]; if [ $img_class ] { // Look for the WP image id preg_match[ '/wp-image-[[\d]+]/i', $img_class[ 1 ], $found_id ]; // if first image id found: check whether is image if [ $found_id ] { $img_id = absint[ $found_id[ 1 ] ]; // if is image: return its id if [ wp_attachment_is_image[ $img_id ] ] { return $img_id; } } // if[found_id] } // if[img_class] // else: try to catch content image id by its url as stored in the database // find src attribute and catch its value preg_match[ '/]*src\s*=\s*[\'"][[^\'"]+][\'"][^>]*>/i', $img_tag, $img_src ]; if [ $img_src ] { // delete optional query string in img src $url = preg_replace[ '/[[^?]+].*/', '\1', $img_src[ 1 ] ]; // delete image dimensions data in img file name, just take base name and extension $guid = preg_replace[ '/[.+]-\d+x\d+\.[\w+]/', '\1.\2', $url ]; // if path is set relatively make it absolute if [ 0 === strpos[ $guid, '/' ] ] { $guid = home_url[] . $guid; } // look up its ID in the db $found_id = $wpdb->get_var[ $wpdb->prepare[ "SELECT `ID` FROM $wpdb->posts WHERE `guid` = '%s'", $guid ] ]; // if first image id found: return it if [ $found_id ] { return absint[ $found_id ]; } // if[found_id] } // if[img_src] } // foreach[img_tag] } // if[all_img_tags] // if nothing found: return 0 return 0; }