我创建了一个自定义字段,其中使用wordpress标准媒体库存储媒体文件网址/位置,方法是单击“插入帖子”按钮。下面是我提取媒体文件路径的代码。图片网址工作正常。但它只返回媒体头衔。我不知道从哪里可以获得文件路径。
jQuery(document).ready(function() {
jQuery('#wsp_media_button').click(function() {
formfield = jQuery('#wsp_media').attr('name');
tb_show('', 'media-upload.php?TB_iframe=true&tab=library');
return false;
});
window.send_to_editor = function(html) {
var imgurlar = html.match(/<img[^>]+src=\"([^\"]+)\"/);
var imgurl = imgurlar[1];
//html is returning only title of the media
alert(html);
//image
if( imgurl.length ){
jQuery('#wsp_media').val(imgurl);
}
//other types of files
else{
var fileurl = jQuery(html);
}
}
});
答案 0 :(得分:1)
如果用户在插入媒体(视频,pdfs等)时选择了不来包含链接URL,那么传回编辑器的所有内容都是文件名,这就是您所看到的
如果您希望始终确保文件URL已被发回,无论用户选择了哪种设置,或者以不同的格式存储文件URL,您都可以挂钩两个单独的过滤器。
程序设置:
add_filter('media_send_to_editor', 'media_to_editor', 1, 3);
add_filter('image_send_to_editor', 'image_to_editor', 1, 8);
对于图像,过滤器功能如下所示:
image_to_editor($html, $id, $caption, $title, $align, $url, $size, $alt){
}
对于媒体附件:
function media_to_editor($html, $send_id, $attachment ){
}
因此,您可以在这些过滤器中更改调整发送回编辑器的数据,以确保它始终具有文件URL。对于媒体附件,请检查html是否包含文件引用,如果没有,请将其添加回来,然后将其发送回编辑器。