WordPress 内からダウンロード可能な csv ファイルを動的に作成しようとしています。含まれるデータは正しく、ダウンロード用のファイルは正常に作成されます。ただし、作成された csv ファイルには、テンプレートの HTML 出力が含まれています。
テンプレートからの HTML なしで、どのようにデータを出力できますか?
これが関数です。配列には sql クエリが正しく入力されていますが、結果はこれと同じです。
function exportAsCSV ( ) {
$csv = '';
$header_array = array('Header 1', 'Header 2', 'Header 3');
$data_array = array(
array('Row 1 A', 'Row 1 B', 'Row 1 C'),
array('Row 2 A', 'Row 2 B', 'Row 2 C'),
);
$csv .= implode(', ', $header_array);
$csv .= '\n';
foreach($data_array as $row){
$csv .= implode(', ', $row);
$csv .= '\n';
}
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Content-Type: text/csv');
header('Expires: ' . $now);
header('Content-Disposition: attachment; filename="data.csv"');
header('Pragma: no-cache');
echo $csv;
exit();
}
関数は次のように呼び出されます。
if(isset($_GET['export_data'])){
ob_end_clean();
exportAsCSV();
}