我在ACF中有以下图像库:
$slider = get_field( \'slider\' );
我需要创建一个函数,这样只需单击一下,整个图像库就可以切换到。zip文件。有人有类似的东西吗?我发现了一些东西,但由于某种原因,它不起作用。谢谢
编辑:
我已尝试实现这一点:
<?php
if ( $slider ) :
$destination = \'downloads/\' . sanitize_title( get_the_title() ) . \'.zip\';
if ( file_exists( $destination ) ) {
echo \'<a href="\' . esc_url( home_url( \'/\' ) ) . $destination . \'" class="download-link" download>DOWNLOAD ALL</a>\';
} else {
$files = array();
foreach ( $slider as $singlefile ) {
$files[] = get_attached_file( $singlefile[\'ID\'] );
}
if ( count( $files ) ) {
$zip = new ZipArchive();
$zip->open( $destination, ZipArchive::CREATE );
foreach ( $files as $file ) {
if ( file_exists( $file ) ) {
$new_filename = substr( $file, strrpos( $file, \'/\' ) + 1 );
$zip->addFile( $file, $new_filename );
}
}
$zip->close();
echo \'<a href="\' . esc_url( home_url( \'/\' ) ) . $destination . \'" class="download-link" download>DOWNLOAD ALL</a>\';
} else {
echo \'no files found\';
}
}
endif;
?>
但是当文件被下载时,我收到一个下载错误,我不知道我做错了什么。
SO网友:bleuchill
我使用的是相同的代码,我能够找出错误发生的地方。调用此行代码时生成的路径错误:
$zip->打开($destination,ZipArchive::CREATE);
它会弹出您的主目录,然后在其中附加$destination的值。
在我的情况下(这不是最干净的解决方案,但这是我最终要做的),我硬编码了目标,而不是使用变量。
$zip->打开(\'wp content/themes/my theme/downloads/\'。清理\\u标题(get\\u the\\u title())。\'。zip\',ZipArchive::创建);