首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的插件中,使用Wordpress媒体库不起作用

在我的插件中,使用Wordpress媒体库不起作用
EN

Stack Overflow用户
提问于 2015-01-23 16:03:41
回答 1查看 1K关注 0票数 0

目前,我尝试在插件中包含wordpress媒体库,但是图像的url没有复制到相应的输入字段中。当我调试代码并包含警报(Image_url)时,我得到了一个“未定义”。

有人知道我在这里做错了什么吗?我的代码如下:

联署材料:

代码语言:javascript
复制
jQuery(document).ready(function() { 
    jQuery('#upload_logo_button').click(function() { 
        tb_show('Upload a logo', 'media-upload.php?referer=clb_plugin_options&type=image&TB_iframe=true&post_id=0', false); 
        window.send_to_editor = function(html) { 
            var image_url = $('img',html).attr('src'); 
            jQuery('#clb_setting_logo').val(image_url); 
            tb_remove(); 
        };     
        return false;
    });     
});//jquery document    

PHP:

代码语言:javascript
复制
public function admin_enqueue_scripts_func() {
    wp_enqueue_script('jquery');
    wp_enqueue_script('thickbox');
    wp_enqueue_script('media-upload');
    wp_register_script( 'js-script-clb-admin', plugins_url( 'js/clb-admin-min.js', dirname(__FILE__) ), array('jquery','media-upload','thickbox'));
    wp_enqueue_script( 'js-script-clb-admin');
}//function admin_enqueue_scripts_func  
add_action( 'admin_enqueue_scripts', 'admin_enqueue_scripts_func' );    

HTML:

代码语言:javascript
复制
<input type="text" id="clb_setting_logo" name="clb_plugin_options[clb_setting_logo]" value="<?php echo esc_url( $options['clb_setting_logo'] ); ?>" />
<input id="upload_logo_button" type="button" class="button" value="<?php _e( 'Upload Logo', 'clb' ); ?>" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 16:43:54

首先,将wp_enqueue_media();添加到admin_enqueue_scripts_func()中。先试一试,因为你做的事情和我最近所做的完全不同(这很有效)。

但据我所知,你使用var image_url = $('img',html).attr('src');, but I don;t see

作为参考资料,这是我的js。

代码语言:javascript
复制
var custom_uploader;
$(document.body).on('click', '#upload_image_button' ,function(e)
{
    e.preventDefault();
    if (custom_uploader)
    {
        custom_uploader.open();
        return;
    }
    custom_uploader = wp.media.frames.file_frame = wp.media(
    {
        title: 'Choose Image',
        button: {
            text: 'Choose Image'
        },
        multiple: false
    });
    custom_uploader.on('select', function()
    {
        attachment = custom_uploader.state().get('selection').first().toJSON();
        $('#upload_image').val(attachment.url);
    });
    custom_uploader.open();
});

也许可以试试这个,用你自己的id来代替它。希望这能帮点忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28113879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档