Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用wp media uploader在字段中未显示上载文件路径_Javascript_Php_Jquery_Wordpress_File Upload - Fatal编程技术网

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

Javascript 使用wp media uploader在字段中未显示上载文件路径,javascript,php,jquery,wordpress,file-upload,Javascript,Php,Jquery,Wordpress,File Upload,我在插件中使用自定义媒体上传。在我之前的(4.0之前)WordPress版本中,它工作得非常好。当我上传音频或图像文件时,其上传成功 当我点击“插入帖子”时,文本字段中显示的上传文件的路径 但是当我将我的WordPress升级到4.4.2并成功上传任何文件时 当我点击“插入帖子”时,上传文件的文件路径不会显示在我的文本字段中 在WordPress的两个版本中,代码都是100%相同的 以下是我的HTML代码: <input type="text" size="50" name="mp

我在插件中使用自定义
媒体上传
。在我之前的
(4.0之前)WordPress
版本中,它工作得非常好。当我上传音频或图像文件时,其上传成功

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

但是当我将我的
WordPress升级到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">
这是我的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();
}
我警告
fileurl
变量,但它给我未定义的值。所以请帮我解决这个问题

为什么不使用

试试这个:

jQuery(document).ready(function($) {
    "use strict";

    $('.st_upload_button').on('click', function(e){
        e.preventDefault();
        var $input_field = $(this).prev();
        var custom_uploader = wp.media.frames.file_frame = wp.media({
            title: 'Add Audio',
            button: {
                text: 'Add Audio'
            },
            multiple: false
        });
        custom_uploader.on('select', function() {
            var attachment = custom_uploader.state().get('selection').first().toJSON();
            $input_field.val(attachment.url);
        });
        custom_uploader.open();
    });

});

这将在单击按钮时打开媒体屏幕,并将url放入输入字段。

他们的是wordpress上传程序自wordpress 3.5以来的新版本。也许你这样做的方式在WordPress4.0中是不可用的

您可以在此处找到基本教程:

jQuery(文档).ready(函数($){
var自定义上传器;
$(“#上传图像按钮”)。单击(功能(e){
e、 预防默认值();
//如果已创建uploader对象,请重新打开该对话框
if(自定义上传器){
自定义上传程序.open();
返回;
}
//扩展wp.media对象
自定义上传程序=wp.media.frames.file\u frame=wp.media({
标题:“选择图像”,
按钮:{
文本:“选择图像”
},
多重:假
});
//选择文件后,抓取URL并将其设置为文本字段的值
自定义上传器.on('select',function(){
attachment=custom_uploader.state().get('selection').first().toJSON();
$('#upload_image').val(attachment.url);
});
//打开uploader对话框
自定义上传程序.open();
});
});


输入URL或上载图像
//此部分应位于function.php(或类似文件)中
添加操作(“管理队列脚本”、“我的管理脚本”);
函数my_admin_scripts(){
如果(isset($\u GET['page'])&&&$\u GET['page']=='my\u plugin\u page'){
wp_排队_媒体();
wp_register_脚本('my-admin-js',wp_PLUGIN_URL.'/my PLUGIN/my admin.js',数组('jquery');
wp_排队_脚本('my-admin-js');
}
}

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

但如果您单击该字段下方的
文件url
按钮,然后单击
插入到帖子中
您的代码运行良好:)

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

我真正做的是:

当用户点击
插入Post
按钮时。MyjQuery检查
Insert into Post
按钮的父项,找到
文件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);
     });

因此,请尝试一下并让我知道:)

先生,您是否重新启动了wamp或xamp。我正在处理我的在线服务器。上周我遇到了同样的问题。我的数据库连接已断开,wamp工作不正常。当我重新启动时,一切正常。hmmmm但我没有处理localbro,我的问题不是数据库。因为我在点击“插入帖子”时没有看到文件路径,所以帖子的插入远远超过了stepbro现在我的媒体加载程序没有用你的代码打开:'(你需要修改你的代码。你不需要
tb\u show()
。在放入新代码之前,请务必清除旧代码。并注意检查器中的任何错误。嘿@jordane有两个小问题…如果你能解决它们…你的答案将非常适合我…或者请解决它。你说的两个小问题是什么意思?首先,我不能选择任何以前的附件;其次,如果我上载新文件并当我在“选择图像”按钮上点击三次后,它会显示在输入字段中,第三次我有两个上传字段,它们的按钮具有相同的id和名称,所以我用不同的名称和id调用了两次您的jquery代码
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);
     });