我已经创建了一个自定义帖子类型。它需要上传一个文件。我找到了以下教程,我成功地将其改编为我所需要的,但有一个例外:
http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/
本教程提供了JavaScript代码来覆盖“发送到编辑器”按钮,但这不是我想要做的。我想将文件名设置为帖子的元值,这样我就可以在我的显示模板中将其拉出。理想情况下,我想在file upload thickbox中显示另一个自定义链接,类似于“set as post thumbnail”,这将实现这一点。
我的自定义JavaScript文件包含以下内容(第一个函数已自定义为我的帖子类型,第二个没有):
jQuery(document).ready(function() {
jQuery(\'#upload_resource_button\').click(function() {
formfield = jQuery(\'#upload_resource\').attr(\'name\');
tb_show(\'\', \'media-upload.php?type=file&TB_iframe=true\');
return false;
});
window.send_to_editor = function(html) {
imgurl = jQuery(\'img\',html).attr(\'src\');
jQuery(\'#upload_image\').val(imgurl);
tb_remove();
}
});
如果我需要一个额外的隐藏字段来分配文件名,我可能可以解决这个问题——我真正需要知道的是使用什么钩子来向thickbox添加新链接,而不是“发送到编辑器”。
我希望这是有意义的——我不确定所有的术语都是正确的。
谢谢
最合适的回答,由SO网友:Bainternet 整理而成
我不能说我已经尝试过了,但如果您有文件的url,并且只需要文件名,那么您可以从以下内容更改代码:
window.send_to_editor = function(html) {
imgurl = jQuery(\'img\',html).attr(\'src\');
jQuery(\'#upload_image\').val(imgurl);
tb_remove();
}
对此:
window.send_to_editor = function(html) {
imgurl = jQuery(\'img\',html).attr(\'src\');
filename = substring(imgurl.lastIndexOf(\'/\'), imgurl.length);
jQuery(\'#upload_resource\').val(filename);
tb_remove();
}
这样,“发送到编辑器”按钮将只插入文件名。