Jquery window.send_to_editor

Rya*_*mer 10 wordpress jquery

无法想出一个好头衔.

我有一个WordPress版本,我使用内置的WordPress媒体上传器上传多个图片.它是如何工作的,在你上传并选择"插入"之后,jQuery将图像路径插入到包含ID的文本字段中.保存后,文本字段将保存在选项表中.

如果您只有1个上传字段,则完美无缺.添加更多上传后,每个上传字段都会以相同的图片路径保存.只需要每个上传按钮只插入其相关文本字段的值.

我曾尝试使用.each但无法使其正常工作.还尝试使用.attr('id')来插入值,但没有做任何事情.

这是我的jQuery和标记:

jQuery('.upload-button').click(function() {
    formfield = jQuery('.upload').attr('name');
    tb_show('', 'media-upload.php?type=image&TB_iframe=true');
    return false;
});

window.send_to_editor = function(html) {
    imgurl = jQuery('img',html).attr('src');
    jQuery('.upload').val(imgurl);
    tb_remove();
};

<div class="upload_field"
    <input type="text" name="upload_one" id="upload_one" class="upload" value="" />
    <input type="button" class="upload-button" value="Upload Image" />
</div>

<div class="upload_field"
    <input type="text" name="upload_two" id="upload_two" class="upload" value="" />
    <input type="button" class="upload-button" value="Upload Image" />
</div>

<div class="upload_field"
    <input type="text" name="upload_three" id="upload_three" class="upload" value="" />
    <input type="button" class="upload-button" value="Upload Image" />
</div>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅我正在使用的上传器设置:http: //www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/

一如既往,任何帮助都非常感谢.

小智 27

只需要能够指定插入值的输入字段.

var uploadID = ''; /*setup the var*/

jQuery('.upload-button').click(function() {
    uploadID = jQuery(this).prev('input'); /*grab the specific input*/
    formfield = jQuery('.upload').attr('name');
    tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
    return false;
});

window.send_to_editor = function(html) {
    imgurl = jQuery('img',html).attr('src');
    uploadID.val(imgurl); /*assign the value to the input*/
    tb_remove();
};
Run Code Online (Sandbox Code Playgroud)


小智 6

我使用它来确保其他功能也适用于编辑器,我还传递了我想要图像的输入字段的id.

<?php
function customPostTypeUploader() {
    if(isset($_GET["post_type"])) {
?>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        var uploadID          = '';
        var storeSendToEditor = '';
        var newSendToEditor   = '';

        jQuery(document).ready(function() {
            storeSendToEditor = window.send_to_editor;
            newSendToEditor   = function(html) {
                                    imgurl = jQuery('img',html).attr('src');
                                    $("#" + uploadID.name).val(imgurl);
                                    tb_remove();
                                    window.send_to_editor = storeSendToEditor;
                                };
        });

        function Uploader(id) {
            window.send_to_editor = newSendToEditor;
            uploadID = id;
            formfield = jQuery('.upload').attr('name');
            tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
            return false;
        }
    </script>
<?php
    }
}

add_action("admin_head", "customPostTypeUploader");
?>
Run Code Online (Sandbox Code Playgroud)

然后在元框中使用表单的输入字段,如下所示...

<input type="text" id="image_1" name="uploaded_image_1" value="" size="40" />
<input type="button" onclick="Uploader(image_1);" title="Upload image" class="upload-button" id="add_image" value="Browse..."/>
Run Code Online (Sandbox Code Playgroud)