Получение изображений из записи и создание ZIP-архива

3 февр. 2011 г., 00:08:23
Просмотры: 1.35K
Голосов: 4

Вот что у меня есть на данный момент.

  function zip_gallery()
  {
      global $post;
      // Получаем все вложения-изображения для текущей записи
      $images = get_children(array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_mime_type' => 'image', ));

      if ($images) {
          $save = $post->post_title;

          $zip = new ZipArchive;
          // Создаем новый ZIP-архив
          if ($zip->open($save . '.zip', ZIPARCHIVE::CREATE) === true) {
              foreach ($images as $image) {
                  // Получаем URL изображения в полном размере
                  $file = wp_get_attachment_url($image->ID, 'full', false, false);
                  $filename = pathinfo($file);
                  // Добавляем файл в архив
                  $zip->addFile($file, $filename);
              }

              $zip->close();
          }
      }
  }

Может кто-нибудь объяснить, что я делаю не так.

1
Комментарии

У тебя получилось это сделать?

user3047 user3047
20 сент. 2011 г. 00:43:45
Все ответы на вопрос 1
4

Метод ZipArchive->addFile() ожидает локальный путь к файлу, в то время как wp_get_attachment_url() возвращает URL. Вам нужно преобразовать URL в локальный путь к файлу или использовать другой способ.

3 февр. 2011 г. 09:09:21
Комментарии

есть ли плагин, который делает это?

user3047 user3047
20 сент. 2011 г. 00:55:36

@user3047 насколько я знаю - нет, но я не искал...

Rarst Rarst
20 сент. 2011 г. 11:10:32

Удалось ли тебе заставить это работать? Таким образом?

user3047 user3047
20 сент. 2011 г. 19:01:10

@user3047 Я просто указал на очевидную ошибку в коде тогда, я не пытался реализовать и протестировать это.

Rarst Rarst
20 сент. 2011 г. 20:59:37