以下是如何将 wordpress 多媒体上传器用于多个字段或多个字段的示例。JS
代码和html代码是这样的
这个怎么运作
upload_image_button
在此类函数触发器的基础上在每个上传按钮上添加类click
以获取 wordpress 多媒体上传器,请参阅我已使用该prev()
属性将前一个元素获取到单击的元素formfieldID=jQuery(this).prev().attr("id");
,然后我已将上传器返回的图像 url 分配给formfieldID
<input id="upload_image1" type="text" name="upload_image1" value="<?php echo $upload_image1;?>" />
<input class="upload_image_button" type="button" value="Upload image 1" />
<input id="upload_image2" type="text" name="upload_image2" value="<?php echo $upload_image2;?>" />
<input class="upload_image_button" type="button" value="Upload image 2" />
<script type="text/javascript">
//tb_show('', 'media-upload.php?TB_iframe=true');
var upload_image_button=false;
jQuery(document).ready(function() {
jQuery('.upload_image_button').click(function() {
upload_image_button =true;
formfieldID=jQuery(this).prev().attr("id");
formfield = jQuery("#"+formfieldID).attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
if(upload_image_button==true){
var oldFunc = window.send_to_editor;
window.send_to_editor = function(html) {
imgurl = jQuery('img', html).attr('src');
jQuery("#"+formfieldID).val(imgurl);
tb_remove();
window.send_to_editor = oldFunc;
}
}
upload_image_button=false;
});
})
</script>
还要确保您已包含上传者的必要文件JS
和CSS
文件,为此您必须添加一个操作
<?php
function my_admin_uploader_scripts() {
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_register_script('my-upload', WP_PLUGIN_URL.'/my-script.js', array('jquery','media-upload','thickbox'));
wp_enqueue_script('my-upload');
}
function my_admin_uploader_styles() {
wp_enqueue_style('thickbox');
}
add_action('admin_print_scripts', 'my_admin_uploader_scripts');
add_action('admin_print_styles', 'my_admin_uploader_styles');
?>
注意:当您将上传器分配给您的输入字段时,还要注意一件事,上传器的控制现在分配给这些字段,因此当上传器被调用时,它会将图像 url 分配给您的文本字段,所以这是您的问题触发上传器您无法在帖子的内容区域中插入图像以实现此解决方案您必须将以前的控件存储在某个位置和完成上传器后,然后将上传器的控制重新分配给我拥有的上一个功能在我的 JS 代码中提供,请参阅下面它是如何工作的
var oldFunc = window.send_to_editor;
window.send_to_editor = function(html) {
imgurl = jQuery('img', html).attr('src');
jQuery("#"+formfieldID).val(imgurl);
tb_remove();
window.send_to_editor = oldFunc;
}
我已经多次使用这种技术,它非常适合我
希望有意义