特定の日付に公開された特定のカスタム分類内の投稿に添付されたすべての画像をクライアントがダウンロードできるようにするスクリプトに取り組んでいます。
を含む新しい管理ページを作成しましたform
。分類法と日付を選択して、フォームを送信できます。
次に、フォームはurl
、特定の画像サイズ (1920px) のすべての を取得しようとするスクリプトに投稿します。これまでのところ、投稿を取得するためにループを実行してから、db
一致する添付ファイルを取得するための呼び出しを実行していますID
。
url
しかし、これらの画像の を配列内に取得して、ユーザーが圧縮してダウンロードできるようにする方法については、少し行き詰まっています。
これまでのスクリプトのコードは次のとおりです。
(create_zip
関数から: http://davidwalsh.name/create-zip-php )
/* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
//if the zip file already exists and overwrite is false, return false
if(file_exists($destination) && !$overwrite) { return false; }
//vars
$valid_files = array();
//if files were passed in...
if(is_array($files)) {
//cycle through each file
foreach($files as $file) {
//make sure the file exists
if(file_exists($file)) {
$valid_files[] = $file;
}
}
}
//if we have good files...
if(count($valid_files)) {
//create the archive
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
return false;
}
//add the files
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
//debug
//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
//close the zip -- done!
$zip->close();
//check to make sure the file exists
return file_exists($destination);
} else {
return false;
}
}
?>
(画像を取得するコード)
<?php
// get things from the form
$club = $_POST['club'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
// run the loop
$loop = new WP_Query( array(
'post_type' => 'sell_media_item',
'collection' => $club,
'include_children' => false,
'year' => $year,
'monthnum' => $month,
'day' => $day,
'fields' => 'ids',
) );
if ( $post_ids = $loop->get_posts() ) {
$post_ids = implode( ',', $post_ids );
$atts_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_parent IN($post_ids) AND post_type = 'attachment'" );
$images->query( array(
'post_mime_type' =>'image',
'post_status' => 'published',
'post_type' => 'attachment',
'post__in' => $atts_ids,
));
}
//////////////////////////////////////////////
// something here to get the image url's?
/////////////////////////////////////////////
// prep the files to zip
$files_to_zip = array(
'src/to/files.jpg'
);
// zip 'em!
$result = create_zip($files_to_zip,'vip-download.zip');
?>
1920px の特定の画像サムネイル サイズの URL を zip ファイル配列に取得する方法についてのアイデアはありますか?