Javascript Wordpress自定义Post类型图像上传器问题

Javascript Wordpress自定义Post类型图像上传器问题,javascript,php,wordpress,image-uploading,custom-post-type,Javascript,Php,Wordpress,Image Uploading,Custom Post Type,我有一个错误,我的自定义后类型图像上传我不能得到我的头左右。 当我一次上传所有图片时,我的图片上传器工作得非常好,但是如果我需要编辑一篇文章,那么我的问题就来了。当我在Wordpress admin中按下更新按钮时,我的所有图像都被删除,只剩下一个损坏的图像。 只有在按下update之前使用了媒体上传器,图像才会被保存。因此,如果我想编辑一篇文章,我必须每次上传图片,我需要解决这个问题 我有两个文件:image\u uploader.php和image\u upload.js 第一个image_

我有一个错误,我的自定义后类型图像上传我不能得到我的头左右。 当我一次上传所有图片时,我的图片上传器工作得非常好,但是如果我需要编辑一篇文章,那么我的问题就来了。当我在Wordpress admin中按下更新按钮时,我的所有图像都被删除,只剩下一个损坏的图像。 只有在按下update之前使用了媒体上传器,图像才会被保存。因此,如果我想编辑一篇文章,我必须每次上传图片,我需要解决这个问题

我有两个文件:image\u uploader.php和image\u upload.js

第一个image_upload.js和第二个image_uploader.php
var addButton=document.getElementById('image upload button');
var deleteButton=document.getElementById('image delete button');
var img=document.getElementById('image tag');
var hidden=document.getElementById('img hidden field');
var customUploader=wp.media({
标题:“选择图像”,
按钮:{
文本:“使用此图像”
},
多重:假
});
addButton.addEventListener('click',函数(){
if(自定义上载程序){
customUploader.open();
}
}	);
customUploader.on('select',function()){
var attachment=customUploader.state().get('selection').first().toJSON();
setAttribute('src',attachment.url);
hidden.setAttribute('value',JSON.stringify([{id:attachment.id,url:attachment.url}]);
切换可见性(“添加”);
} );
deleteButton.addEventListener('click',函数(){
img.removeAttribute('src');
隐藏的.removeAttribute('value');
切换可见性(“删除”);
});
var toggleVisibility=函数(操作){
如果('ADD'==操作){
addButton.style.display='none';
deleteButton.style.display='';
setAttribute('style','width:100%;');
}
如果('DELETE'==操作){
addButton.style.display='';
deleteButton.style.display='none';
img.removeAttribute(“风格”);
}
};
addEventListener('DOMContentLoaded',function(){
如果(“===customUploads.imageData | | 0===customUploads.imageData.length){
切换可见性(“删除”);
}否则{
setAttribute('src',customUploads.imageData.src);
hidden.setAttribute('value',JSON.stringify([customUploads.imageData]);
切换可见性(“添加”);
}
} );
//第二图像
var addButton2=document.getElementById('image-upload-button2');
var deleteButton2=document.getElementById('image-delete-button2');
var img2=document.getElementById('image-tag2');
var hidden2=document.getElementById('img-hidden-field2');
var customUploader2=wp.media({
标题:“选择图像”,
按钮:{
文本:“使用此图像”
},
多重:假
});
addButton2.addEventListener('click',函数(){
if(自定义上传器2){
customUploader2.open();
}
}	);
customUploader2.on('select',function(){
var attachment2=customUploader2.state().get('selection').first().toJSON();
setAttribute('src',attachment2.url);
setAttribute('value',JSON.stringify([{id:attachment2.id,url:attachment2.url}]);
切换可视性2('ADD2');
} );
deleteButton2.addEventListener('click',函数(){
img2.removeAttribute('src');
hidden2.removeAttribute('value');
切换可见性2('DELETE2');
});
变量toggleVisibility2=函数(操作){
如果('ADD2'==操作){
addButton2.style.display='none';
deleteButton2.style.display='';
setAttribute('style','width:100%;');
}
如果('DELETE2'==操作){
addButton2.style.display='';
deleteButton2.style.display='none';
img2.removeAttribute(“样式”);
}
};
addEventListener('DOMContentLoaded',function(){
如果(“==customUploads2.imageData2 | | 0==customUploads2.imageData2.length){
切换可见性2('DELETE2');
}否则{
setAttribute('src',customUploads2.imageData2.src);
setAttribute('value',JSON.stringify([customUploads2.imageData2]);
切换可视性2('ADD2');
}
} );

intval($image\u data[0]->id),'src'=>esc\u url\u raw($image\u data[0]->url
) );
} 
更新_post_meta($post_id,'custom_image_data',$image_data);
}
}
添加操作('save_post'、'save_custom_image');
//图2
函数save_custom_image2($post_id){
$is_autosave2=wp_is_post_autosave($post_id);
$is_revision2=wp_is_post_revision($post_id);
$is_valid_nonce2=(isset($_POST['custom_image2_nonce'])和&wp_verify_nonce($_POST['custom_image2_nonce'],basename(__文件_));
//根据保存状态退出脚本
如果($is|autosave2 | |$is|revision2 | |!$is|valid|nonce2){
返回;
}
如果(isset($\u POST['自定义图像2\u数据'])){
$image_data2=json_decode(带斜杠($_POST['custom_image2_data']);
如果(是对象($image\u data2[0])){
$image\u data2=array('id'=>intval($image\u data2[0]->id),'src'=>esc\u url\u raw($image\u data2[0]->url)
) );
}否则{
$image_data2=[];
}
更新_post_meta($post_id,'custom_image2_data',$image_data2);
}
}	

添加操作('save_post','save_custom_image2')我不确定您试图在那里完成什么,如果不设置新的安装,调试代码是相当困难的,但我认为有更好的方法可以做到这一点


Wordpress有一个非常有用的扩展名ACF,它可以为一个或多个帖子类型添加自定义元字段。我强烈推荐它,对于大多数情况,即使是免费版本也足够了

我不知道你想在那里完成什么,如果不设置新的安装,调试你的代码是很困难的,但我认为有更好的方法可以做到这一点

Wordpress有一个非常有用的扩展名ACF,它可以为一个或多个帖子类型添加自定义元字段。