ACF画廊现场图像已加载

时间:2019-11-21 作者:Dario B.

我在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;
?>
但是当文件被下载时,我收到一个下载错误,我不知道我做错了什么。

1 个回复
SO网友:bleuchill

我使用的是相同的代码,我能够找出错误发生的地方。调用此行代码时生成的路径错误:

$zip->打开($destination,ZipArchive::CREATE);

它会弹出您的主目录,然后在其中附加$destination的值。

在我的情况下(这不是最干净的解决方案,但这是我最终要做的),我硬编码了目标,而不是使用变量。

$zip->打开(\'wp content/themes/my theme/downloads/\'。清理\\u标题(get\\u the\\u title())。\'。zip\',ZipArchive::创建);