帮助将图像上传功能添加到小工具

时间:2012-09-02 作者:user715564

我正在开发一个小型WordPress小部件,并试图将其设置为用户可以上传图像的位置。到目前为止,正在加载必要的脚本,但当我单击“媒体库图像”按钮时,图像上载程序不会弹出。

这是我的javascript文件:

jQuery(document).ready(function($) {

var formfield = null;

$(\'#upload_image_button\').click(function() {
    $(\'html\').addClass(\'Image\');
    formfield = $(\'#wp-ss-image\').attr(\'name\');
    tb_show(\'\', \'media-upload.php?type=image&TB_iframe=true\');
    return false;
});


// user inserts file into post. only run custom if user started process using the above process
// window.send_to_editor(html) is how wp would normally handle the received data

window.original_send_to_editor = window.send_to_editor;
window.send_to_editor = function(html){
    var fileurl;

    if (formfield != null) {
        fileurl = $(\'img\',html).attr(\'src\');

        $(\'#wp-ss-image\').val(fileurl);

        tb_remove();

        $(\'html\').removeClass(\'Image\');
        formfield = null;
    } else {
        window.original_send_to_editor(html);
    }
};

});
以下是我调用脚本的函数:

add_action(\'admin_print_scripts-widgets.php\', \'wp_ss_image_admin_scripts\');

function wp_ss_image_admin_scripts() {
    wp_enqueue_script( \'wp-ss-image-upload\', plugins_url( \'/WP-Simple-Social/wp-simple-social-image.js\' ), array( \'jquery\',\'media-upload\',\'thickbox\' ) );
}

add_action(\'admin_print_styles-widgets.php\', \'wp_ss_admin_styles\');

function wp_ss_admin_styles() {
    wp_enqueue_style( \'thickbox\' );
}
下面是显示输入框和图像上传按钮的html:

<p>Upload Photo: <input id="wp-ss-image" class="widefat" type="text" size="75" name="<?php echo $this->get_field_name( \'image\' ); ?>" value="<?php echo esc_url( $image ); ?>" />
        <input id="upload_image_button" type="button" value="Media Library Image" class="button-secondary" />
由于正在加载所有必需的文件/脚本,这可能是jQuery问题吗?

如果有任何其他有帮助的信息,请让我知道。谢谢你的帮助。

1 个回复
最合适的回答,由SO网友:bueltge 整理而成

我还注意到url中有一个输入错误media-upload.php?type=image&amp&TB_iframe=1. 也许这就是问题所在。

也是一个工作示例:

jQuery( \'input[id^=my_field]\' ).live( \'click\', function($) {

     formfield = $( \'input[id^=my_image]\', $(this).closest(\'.widget\') ).attr( \'name\' );
     tb_show( \'\', \'media-upload.php?type=image&amp;TB_iframe=1\' );

     return false;
} );

结束

相关推荐

JQuery主题滚轮到WordPress

如何将Jquery ui的自定义滚动主题加载到wordpress?我最近为datepicker创建并下载了一个新主题,但无法加载。我尝试将css文件添加到我的主题文件中,然后执行“排队风格”功能,但似乎遗漏了一些东西。function my_add_styles() { wp_enqueue_style(\'datepicker\', get_template_directory_uri() . \'/lib/js/datepicker.css\'); }