1) 我认为您应该更改JS文件。这个send_to_editor
是将图像插入编辑器的默认WordPress处理程序。在代码中completely 更换了它。那可不酷。您应该备份它(我不确定这是否可以修复错误,但至少它可以让您的代码运行得更正常):
下面我将解释代码中的某些内容
jQuery(document).ready(function($) {
$(\'#elem_upload_logo\').click(function() {
var backup = window.send_to_editor, // backup the original \'send_to_editor\' function which adds images to the editor
post_id = $(this).attr(\'rel\'); // get post ID
// now you can change the default behavior
window.send_to_editor = function (html) {
// check the returned HTML code and do something with it
// restore the default behavior
window.send_to_editor = backup;
}
tb_show(\'\', \'media-upload.php?type=image&TB_iframe=true&post_id=\' + post_id);
return false;
});
});
2)代码的另一个问题是
html
可能有
no img
标签。实际上,这取决于用户如何选择链接图像的方式(他们可以将图像链接到附件页、图像文件,也可以不链接到任何地方)。上述代码仅在图像链接到图像文件时有效。
您可以通过将图像插入编辑器来测试这种情况,更改图像链接的方式,您将看到实际返回的html。
3) 查看错误时我发现的最后一个问题是,您没有声明帖子ID。thinkbox媒体上传程序must 具有post ID。
要解决这个问题,可以使用一个简单的技巧:在PHP代码中#elem_upload_logo
, 设置其rel="<?php echo $post->ID; ?>"
在JS脚本中,提取该属性并将其传递到媒体上传器的URL中(如上代码所示)。