我已经将两个自定义元框添加到自定义帖子类型中。一个是上载要存储在“headshot”的自定义字段值中的图像,另一个是上载要存储在“column headshot”的自定义字段值中的图像。这是一个新闻网站。
两者都将在“添加媒体”窗格中选择的图像的URL发送到隐藏字段,然后通过正常过程将其发布到自定义字段。但是,我还希望在保存或发布帖子之前预览所选的图像,因此我让jQuery更新图像的src属性,该属性位于div中,一旦在“添加媒体”窗格中选择了图像,就会显示该div。问题是,在第一个“正常头像”框中,当选择图像时,它会更新“列头像”框中图像的src属性,而不是正确的“正常头像”框。
我很确定这是因为window.send_to_editor
实例。最初,我遇到了一个问题,即更新“正常标题”也会将其URL发送到错误的隐藏字段(“列标题”框中的字段),但我通过定义要更新的字段来解决了这个问题:uploadID = jQuery(this).prev(\'input\');
这就解决了问题。我也试图定义要这样更改的源属性的图像,但这并没有解决问题(事实上,这意味着没有更新源属性):changeID = jQuery(this).prev(\'img\');
有existing questions 其中询问如何处理window.send_to_editor
, 但他们没有帮助我。要么他们的解决方案在这里不起作用,要么我没有正确地实现它。
如何调整此代码以使send_to_editor
工件更新了正确的图像源属性,或者这样我可以在选择两幅图像后显示它们的预览?
下面是第一个“正常Headshot”框中使用的jQuery:
jQuery(document).ready( function( $ ) {
$(\'#upload_image_button\').click(function() {
uploadID = jQuery(this).prev(\'input\');
formfield = $(\'#upload_image\').attr(\'name\');
tb_show( \'\', \'media-upload.php?type=image&TB_iframe=true\' );
return false;
});
window.send_to_editor = function(html){
headshotimgurl = $(\'img\',html).attr(\'src\');
uploadID.val(headshotimgurl);
jQuery("#imageurladder").attr("src", headshotimgurl);
tb_remove();
$( "#imageafterdisplay" ).hide();
$( "#imagebeforesave" ).show();
$("#upload_image_button_clear").removeAttr("disabled");
}
$("#upload_image_button_clear").click(function() {
if (!$("#upload_image_button_clear").is(":disabled")) {
$( "#imageafterdisplay" ).hide();
$( "#imagebeforesave" ).hide();
$(\'#upload_image\').val(\'\');
$("#upload_image_button_clear").attr("disabled","disabled");
}
});
});
下面是第二个“列标题”框中使用的jQuery:
jQuery(document).ready( function( $ ) {
$(\'#upload_column_button\').click(function() {
uploadID = jQuery(this).prev(\'input\');
formfield = $(\'#upload_column\').attr(\'name\');
tb_show( \'\', \'media-upload.php?type=image&TB_iframe=true\' );
return false;
});
window.send_to_editor = function(html){
columnimgurl = $(\'img\',html).attr(\'src\');
uploadID.val(columnimgurl);
jQuery("#columnurladder").attr("src", columnimgurl);
tb_remove();
$( "#imageafterdisplay_column" ).hide();
$( "#imagebeforesave_column" ).show();
$("#upload_column_button_clear").removeAttr("disabled");
}
$("#upload_column_button_clear").click(function() {
if (!$("#upload_column_button_clear").is(":disabled")) {
$( "#imageafterdisplay_column" ).hide();
$( "#imagebeforesave_column" ).hide();
$(\'#upload_column\').val(\'\');
$("#upload_column_button_clear").attr("disabled","disabled");
}
});
});