/** * Add an attachment to batch. * * @param Batch $batch * @param int $attachment_id */ private function add_attachment(Batch $batch, $attachment_id) { $attachment = array(); $upload_dir = wp_upload_dir(); $attachment_meta = wp_get_attachment_metadata($attachment_id); if (!isset($attachment_meta['file'])) { return; } $attachment_info = pathinfo($attachment_meta['file']); if (!isset($attachment_info['dirname'])) { return; } $attachment['subdir'] = '/' . $attachment_info['dirname']; $attachment['basedir'] = $upload_dir['basedir']; $attachment['baseurl'] = $upload_dir['baseurl']; /* * Replace subdir of today (e.g. /2014/09) with subdir of this * attachment (e.g. /2013/07). */ $attachment['path'] = str_replace($upload_dir['subdir'], $attachment['subdir'], $upload_dir['path']); $attachment['url'] = str_replace($upload_dir['subdir'], $attachment['subdir'], $upload_dir['url']); $attachment['items'][] = $attachment_info['basename']; if (isset($attachment_meta['sizes'])) { foreach ($attachment_meta['sizes'] as $item) { $attachment['items'][] = $item['file']; } } $batch->add_attachment($attachment); }