Update, vấn đề này liên quan tới tổ chức file path trên máy tính, ở phiên bản 2.3.2 đã fix được lỗi lưu hình ảnh và metadata nhưng còn vấn đề xóa tệp tin cũ khi Thu thập lại bài viết thì bạn cần dùng code sau:
<?php /** * Thực hiện hành động sau khi lưu bài viết và trước khi lưu các tệp đính kèm mới. * Tại thời điểm này, nếu đang thu thập lại bài viết, ta sẽ xử lý các tệp đính kèm cũ. * Xóa mỗi tệp đính kèm cũ ra khỏi thư mục uploads. */ add_action('kdn/post/after_save', 'kdn_post_after_save', 10, 10); function kdn_post_after_save($data, $postData, $postBot, $postSaver, $siteId, $postUrl, $urlTuple, $isRecrawl, $postId, $isFirstPage) { // Nếu đang thu thập lại, hãy tiến hành if ($isRecrawl) { // Lấy ra tất cả tệp đính kèm cũ của bài viết $allAttachment = get_attached_media('', $postId); // Bắt đầu xử lý từng tệp đính kèm foreach ($allAttachment as $attachment) { // Lấy ra meta data của tệp đính kèm $attachmentMetadata = wp_get_attachment_metadata($attachment->ID, true); // Chuẩn bị đường dẫn tới thư mục chứa tệp đính kèm // (WordPress mặc định sẽ phân thư mục theo dạng: // ../wp-content/uploads/{năm}/{tháng}/tep-dinh-kem.jpg) // Lấy ra ../wp-content/uploads/{năm}/{tháng}/ preg_match('/^(.+?)\/(.{4})\/(.{2})\//', $attachmentMetadata['file'], $attachmentPath); $attachmentPath = $attachmentPath[0]; // Lấy ra tất cả các sizes khả dụng của tệp đính kèm $attachmentSizes = isset($attachmentMetadata['sizes']) ? $attachmentMetadata['sizes'] : ''; // Kiểm tra xem đây có phải default thumbnail hay không $metaPostDefaultThumbnailByMediaId = isset(get_post_meta($attachment->ID)['_post_default_thumbnail']) ?: false; // Nếu không phải default thumbnail, tiến hành xóa tệp đính kèm if (!$metaPostDefaultThumbnailByMediaId) { // Nếu có các sizes, tiến hành xóa các sizes của tệp đính kèm if ($attachmentSizes) { foreach ($attachmentSizes as $attachmentSize) { if ($attachmentSize['file']) unlink($attachmentPath . $attachmentSize['file']); } } // Xóa tệp đính kèm unlink($attachmentMetadata['file']); } } } } ?>
Trong code mình đã comment rất rõ, các bạn chịu khó đọc để hiểu cách hoạt động. Chúc bạn thành công!