我正在使用高级自定义字段插件(免费版)将 3 个不同的 pdf 文件附加到单个帖子。
在模板上显示帖子列表后,单击按钮我正在发出 AJAX 请求以获取所有显示帖子的文件。
由于每个帖子都有 3 个 PDF 文件,我想将所有帖子的所有这些文件合并为一个 PDF 文件并下载该单个文件。
到目前为止我做了什么:
单击按钮时的 AJAX 请求:
function merklisteDownload() {
window.event.preventDefault()
var m = JSON.parse(window.sessionStorage.getItem('merkliste_items')) || []
var ids = []
if (m.length > 0) {
m.forEach(element => {
ids.push(element.id)
});
}
$.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
dataType: "json",
data: {
action: 'get_post_files',
ids: ids
},
success: function(response) {
console.log(response.data)
},
error: function(error) {
console.log(error)
}
});
}
和 admin-ajax.php 代码:
function get_post_files(){
$data = [];
foreach ($_POST['ids'] as $post_id) {
array_push($data, [
'id' => $post_id,
'title' => get_the_title($post_id),
'category' => get_the_category($post_id)[0]->name,
'front_image' => get_field('front_image', $post_id)['sizes']['large'] == true ? get_field('front_image', $post_id)['sizes']['large'] : null,
'back_image' => get_field('back_image', $post_id)['sizes']['large'] == true ? get_field('back_image', $post_id)['sizes']['large'] : null,
'technische_daten' => get_field('technische_daten', $post_id)['url'], //file
'lichttechnische_parameter' => get_field('lichttechnische_parameter', $post_id)['url'], //file
'reach_zertifikat' => get_field('reach-zertifikat', $post_id)['url'], //file
]);
}
wp_send_json_success($data);
wp_die();
}
add_action('wp_ajax_get_post_files', 'get_post_files');
add_action('wp_ajax_nopriv_get_post_files', 'get_post_files');
到目前为止一切正常,我能够获取每个帖子的文件 URL,但我不知道如何将这些文件合并为一个并将文件作为 AJAX 响应返回,然后下载该文件。
有什么帮助吗?
此致。