【问题标题】:Why wordpress thickbox not really showing for my theme upload option为什么我的主题上传选项没有真正显示 wordpress thinbox
【发布时间】:2011-11-28 00:34:34
【问题描述】:

这个问题我已经坚持了 8 个多小时。我为我的 wordpress 主题创建了一个选项面板,并为上传徽标选项添加了一个上传按钮。我正在使用 wordpress 厚盒。几乎所有事情都完成了,除了thickbox 上传从不只显示正在显示的thickbox 叠加层。我检查了源文件,.js 文件和样式表文件已正确注册入队。为什么thickbox不显示?请帮帮我!

这是我通过输入按钮调用thickbox的脚本

var fileInput = '';

    jQuery('.upload_image_button').click(function() {
        fileInput = jQuery(this).parent().prev('input.uploadfield');
        //console.log(fileInput);
        formfield = jQuery('#upload_image').attr('name');
        post_id = jQuery('#post_ID').val();
        tb_show('', 'media-upload.php?post_id='+post_id+'&type=image&TB_iframe=true&width=640&height=105');
        return false;
    });



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

        if (fileInput) {
            fileurl = jQuery('img',html).attr('src');

            fileInput.val(fileurl);

            tb_remove();

        } else {
            window.original_send_to_editor(html);
        }
    };

这是我上传的输入按钮代码

<input id="" class="uploadfield" type="text" value="" name="" size="50" maxlength="2048">
                                            <div class="upload_buttons">
                                                <input class="upload_image_button" type="button" value="Upload">
                                            </div>

【问题讨论】:

  • 我尝试用 firebug 调试脚本。我得到的是 TB_window div 里面甚至没有任何东西。就像这个
    。但我仍然不知道如何解决这个问题。
  • 已解决!!!这是因为我从 ajax googleapis 注册了 jquery 1.4.2。为了修复它,我下载了最新的 jquery,然后我注册并将脚本作为新的 admin_jquery 加入队列。它工作正常。我只是不知道为什么它不能与来自 ajax googleapis 的 jquery 一起使用。
  • :发布您的解决方案作为答案。这可能对其他人有所帮助
  • 我不知道这是否是正确的解决方案,我只是将新 jquery 注册并入队到 wordpress 管理员,而不从 wordpress 管理员本身取消注册 jquery 以强制 wordpres 运行 jquery,因为它只是没有'当我将默认的内置 jquery 从 wordpress 排入队列时无法正常工作。我希望有人对这件事有正确的答案。

标签: wordpress upload media thickbox


【解决方案1】:

我发现了真正的问题,因为我在我的 jquery 文件中使用 jQuery() 而不是 $ 我的代码与 jquery 中内置的 wordpress 发生冲突。所以我必须在不注销 jquery 中的 wordpress 构建的情况下注册具有相同名称“jquery”的新 jquery。

更改符号后,我可以在 jquery 中使用 wordpress 构建,而无需注册新的 jquery,并且thickbox 可以正常工作。希望这可以帮助有同样问题的人。谢谢

【讨论】:

  • 第一次觉得自己解决了注册新 jquery 脚本的问题时真是太傻了。 :( 但这是错误的方法,即使它修复了厚盒,但它的行为很奇怪。厚盒本身在弹出时有 2 个关闭按钮。
  • 不,你不傻。我已经测试了您的 js 代码并且它正在工作:Wordpress 本机 MediaUpload 正确显示(我确实从 tb_show 中删除了 post_id)。这就是我在生成选项页面的函数中将所需脚本排入队列的方式:wp_register_script('yourjs', get_template_directory_uri() . '/js/your.js', array('jquery', 'media-upload', 'thickbox'));wp_enqueue_script("yourjs");wp_enqueue_script('media-upload');wp_enqueue_script('thickbox');wp_enqueue_style('thickbox');您不需要添加 jQuery,因为它已经包含(请参阅wp-includes/script-loader.php) .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 2015-10-05
  • 1970-01-01
相关资源
最近更新 更多