Obținerea imaginilor din postare și crearea unui fișier zip

3 feb. 2011, 00:08:23
Vizualizări: 1.35K
Voturi: 4

Iată ce am reușit să fac până acum.

  function zip_gallery()
  {
      global $post;
      // Obține toate imaginile atașate la postarea curentă
      $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;
          // Creează un fișier zip cu numele postării
          if ($zip->open($save . '.zip', ZIPARCHIVE::CREATE) === true) {
              foreach ($images as $image) {
                  // Obține URL-ul imaginii în dimensiunea completă
                  $file = wp_get_attachment_url($image->ID, 'full', false, false);
                  $filename = pathinfo($file);
                  // Adaugă fișierul în arhiva zip
                  $zip->addFile($file, $filename);
              }

              $zip->close();
          }
      }
  }

Poate cineva să-mi explice ce fac greșit?

1
Comentarii

Ai reușit să faci asta?

user3047 user3047
20 sept. 2011 00:43:45
Toate răspunsurile la întrebare 1
4

Metoda ZipArchive->addFile() așteaptă calea locală către fișier, în timp ce wp_get_attachment_url() returnează un URL. Trebuie să construiești calea locală pentru fișier din URL sau în alt mod.

3 feb. 2011 09:09:21
Comentarii

există un plugin care face asta?

user3047 user3047
20 sept. 2011 00:55:36

@user3047 nu știu, dar nu am căutat...

Rarst Rarst
20 sept. 2011 11:10:32

Ai reușit să funcționeze? În acest fel?

user3047 user3047
20 sept. 2011 19:01:10

@user3047 Am subliniat doar o eroare evidentă în cod atunci, nu am încercat să implementez și să testez asta.

Rarst Rarst
20 sept. 2011 20:59:37