Tự Động Lưu Ảnh Vào Host Khi Copy Bài Viết Trong WordPress - Lâm Phúc Digital Marketing

Tự Động Lưu Ảnh Vào Host Khi Copy Bài Viết Trong WordPress

Giới thiệu

Khi xây dựng website bằng WordPress, việc sao chép nội dung từ các nguồn khác để làm phong phú nội dung là điều thường gặp. Tuy nhiên, một vấn đề phát sinh là hình ảnh trong bài viết thường được liên kết từ nguồn gốc, dẫn đến rủi ro mất hình ảnh nếu nguồn bị xóa hoặc thay đổi. Để khắc phục, chúng ta cần tự động lưu ảnh về host của mình khi sao chép bài viết.

Lợi Ích Của Việc Lưu Ảnh Về Host

  • Đảm bảo hình ảnh luôn hiển thị: Tránh tình trạng hình ảnh bị mất do nguồn gốc bị xóa hoặc thay đổi.

  • Tăng tốc độ tải trang: Hình ảnh được lưu trữ trên cùng một máy chủ giúp giảm thời gian tải trang.

  • Kiểm soát nội dung: Dễ dàng quản lý và chỉnh sửa hình ảnh theo ý muốn.

Cách Tự Động Lưu Ảnh Về Host

Sử Dụng Code Tùy Chỉnh

Bạn có thể thêm đoạn mã sau vào file functions.php của theme đang sử dụng:

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_match_all(‘/<img.*?src=”(.*?)”/’, stripslashes($content), $matches); if ($matches) { 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ã trên sẽ tự động tải và lưu tất cả hình ảnh từ bài viết khi bạn nhấn lưu hoặc xuất bản bài viết. Hình ảnh sẽ được lưu vào thư mục uploads của WordPress và liên kết trong bài viết sẽ được cập nhật tương ứng.

Sử Dụng Plugin

Nếu bạn không muốn chỉnh sửa mã nguồn, có thể sử dụng plugin để thực hiện công việc này. Một số plugin phổ biến:

  • QQWorld Auto Save Images: Tự động lưu tất cả hình ảnh trong bài viết về host khi bạn nhấn lưu.

  • Auto Save Remote Images: Tự động tải hình ảnh đầu tiên từ bài viết và đặt làm hình ảnh đại diện.

Bạn có thể cài đặt các plugin này từ kho plugin của WordPress hoặc tải về từ trang chủ của plugin.

Lưu Ý Khi Sử Dụng

  • Bản quyền hình ảnh: Đảm bảo bạn có quyền sử dụng hình ảnh từ nguồn gốc.

  • Dung lượng lưu trữ: Lưu nhiều hình ảnh có thể tốn dung lượng host, cần quản lý hợp lý.

  • Kiểm tra định kỳ: Thường xuyên kiểm tra và xóa những hình ảnh không cần thiết để tiết kiệm dung lượng.

Kết Luận

Việc tự động lưu ảnh vào host khi sao chép bài viết giúp đảm bảo nội dung của bạn luôn đầy đủ và ổn định. Bạn có thể lựa chọn giữa việc sử dụng code tùy chỉnh hoặc plugin tùy theo nhu cầu và khả năng của mình. Hãy luôn lưu ý đến vấn đề bản quyền và quản lý dung lượng lưu trữ một cách hiệu quả.

Hy vọng bài viết này giúp bạn hiểu rõ hơn về cách tự động lưu ảnh vào host khi sao chép bài viết trong WordPress. Nếu bạn có thắc mắc hoặc cần hỗ trợ thêm, đừng ngần ngại liên hệ với chúng tôi.

Bài viết hay? Ấn để tương tác
👍 0❤️ 0👏 0🌟 0
Messenger
Nhắn Zalo
SMS Nhắn tin
Hotline 24/7