/**
  * 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);
 }