3

オンデマンドでカスタムzipファイルを作成しようとしていますが、正常に機能しているように見えるコードが見つかりました http://www.9lessons.info/2012/06/creating-zip-file-with-php.html

WordPressテンプレートにコードを挿入しましたが、唯一のことはheader()

テンプレートをロードする前に送信する必要があります

どうすればワードプレスでこれを行うことができますか?

ここにヘッダー付きのコードがあります

$zip = new ZipArchive();            // Load zip library 
$zip_name = time().".zip";          // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){       // Opening zip file to load files
    $error .=  "* Sorry ZIP creation failed at this time<br/>";
}
foreach($post['files'] as $file){               
    $zip->addFile($file_folder.$file);          // Adding files into zip
}
$zip->close();
if(file_exists($zip_name)){
    // push to download the zip
    header('Content-type: application/zip');
    header('Content-Disposition: attachment; filename="'.$zip_name.'"');
    readfile($zip_name);
    // remove zip file is exists in temp path
    unlink($zip_name);
}
4

2 に答える 2

3

Wordpress が出力に何かを追加する前に実行するフックを使用する必要があります。そのようなフックの 1 つが「init」です。

function do_my_stuff_with_headers() {
    // ...
}
add_action( 'init', 'do_my_stuff_with_headers' );
于 2012-11-22T22:25:03.443 に答える