我尝试从自定义WP_List_Table类中的批量操作导出数据。我有以下导出数据的功能,但我一直想要导出数据时出现“已发送标题”错误。你能指出我做错了吗?
public static function export_mailings ($data) {
if ( !current_user_can( 'manage_options') ) {
return;
}
global $wpdb;
$filename = 'mailings-' . date('d-M-Y') . '.csv';
$sql = "SELECT * FROM {$wpdb->prefix}wpsml WHERE `id` IN (" . implode(',', array_map('intval', $data)) . ")";
$results = $wpdb->get_results($sql);
$csv_headers = array();
$csv_headers[] = 'Date';
$csv_headers[] = 'Name';
$csv_headers[] = 'Email';
$filename = 'export' . date('d-M-Y');
$output_handle = fopen('php://output', 'w');
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Content-Description: File Transfer' );
header( 'Content-type: text/csv' );
header( 'Content-Disposition: attachment; filename=' . $output_filename );
header( 'Expires: 0' );
header( 'Pragma: public' );
fputcsv($output_handle, $csv_headers);
foreach ($results as $result) {
fputcsv($output_handle, (array)$result);
}
fclose($output_handle);
die();
}
答案 0 :(得分:0)
在输出一些数据后,看起来你太迟调用此函数了。尝试挂钩init
:
function yourfunction() {
dosomething();
}
add_action('init', yourfunction);
可以找到完整的参考资料here。