使用wp media uploader上传未在字段中显示的文件路径

dee*_*eem 13 javascript php wordpress jquery file-upload

media upload在我的插件中使用自定义.在我以前的(before 4.0) WordPress版本中,它完美地工作.当我上传音频或图像文件时,它上传成功

在此输入图像描述

当我点击"Insert Into Post"文本字段中显示的上传文件的路径时.

在此输入图像描述

但是当我升级WordPress into 4.4.2并上传任何文件时,它的上传成功

在此输入图像描述

当我点击"插入帖子"时,我文本字段中未显示上传文件的文件路径.

在此输入图像描述

在两个WordPress中,代码是100%相同的.

这是我的HTML代码:

<input type="text" size="50" name="mp3" id="mp3" class="upload-url" />
<input id="st_upload_button" class="st_upload_button" type="button" name="upload_button" value="Upload">
Run Code Online (Sandbox Code Playgroud)

这是我的Functions.php代码:

function pro_scripts_method() {
    wp_enqueue_script('media-upload');
    wp_enqueue_script('thickbox');

    wp_register_script( 'custom-js', plugin_dir_url( __FILE__ )."js/custom.js");
    wp_enqueue_script( 'custom-js' );
}
add_action('admin_enqueue_scripts', 'pro_scripts_method');
Run Code Online (Sandbox Code Playgroud)

这是我的JS代码:

jQuery('.st_upload_button').click(function() {
    targetfield = jQuery(this).prev('.upload-url');
    tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
    return false;
});

window.send_to_editor = function(html) {
    fileurl = jQuery(html).attr('href');
    //alert(fileurl);
    jQuery(targetfield).val(fileurl);
    tb_remove();
}
Run Code Online (Sandbox Code Playgroud)

我警告fileurl变量,但它给了我未定义的值.所以请帮我解决这个问题

Ome*_*mer 3

新版 WordPress 对媒体上传所做的更改是空的链接 URL字段。

在此输入图像描述

但是,如果您单击file url该字段下方的按钮,然后单击Insert Into Post您的代码,效果很好:)

因此我们需要一种简单的方法来自动将值放入链接 URLfile url中。我不知道 WordPress 中是否有这样的设置,但我用jQuery编写了一个简单的代码来实现它,它对我来说非常有效。

我真正在做的是:

当用户按下Insert into Post按钮时。我的jQuery检查该Insert into Post按钮的父级并找到该file url值并将其插入到链接 URL字段中。就是这样!简单吧?

jQuery('.savesend input[type=submit]').click(function(){  
         var url = jQuery(this).parents('.describe').find('.urlfile').data('link-url');
         var field = jQuery(this).parents('.describe').find('.urlfield');
         field.val(url);
     });
Run Code Online (Sandbox Code Playgroud)

所以尝试一下并让我知道:)