0

谁能帮我根据“上传”类型为 NHP 主题选项框架创建一个新的字段类型,以便它使用 Wordpress 自 3.5 以来使用的新“媒体管理器”而不是媒体上传器。这对于与滑块一起使用将非常有用。

也许这篇文章会有所帮助。

4

4 回答 4

1

你很幸运,我需要同样的功能。我设法通过查看代码并应用与旧媒体管理器相同的覆盖技术来做到这一点。

事实上,我在这里写了一篇关于它的教程。

这是javascript代码:

(function($){
    var doc = {
        ready: function(){
            // initialize only if our button is in the page
            if($('#btn_browse_files').length > 0){
                slider.init();
            }
        }
    },
    slider = {
        // the following 2 objects would be our backup containers
        // as we will be replacing the default media handlers
        media_send_attachment: null,
        media_close_window: null,
        init: function(){
            // bind the button's click the browse_clicked handler
            $('#btn_browse_files').click(slider.browse_clicked);
        },
        browse_clicked: function(event){
            // cancel the event so we won't be navigated to href="#"
            event.preventDefault();

            // backup editor objects first
            slider.media_send_attachment = wp.media.editor.send.attachment;
            slider.media_close_window = wp.media.editor.remove;

            // override the objects with our own
            wp.media.editor.send.attachment = slider.media_accept;
            wp.media.editor.remove = slider.media_close;

            // open up the media manager window
            wp.media.editor.open();
        },
        media_accept: function(props, attachment){
            // this function is called when the media manager sends in media info
            // when the user clicks the "Insert into Post" button
            // this may be called multiple times (one for each selected file) 
            // you might be interested in the following:
            // alert(attachment.id); // this stands for the id of the media attachment passed
            // alert(attachment.url); // this is the url of the media attachment passed
            // for now let's log it the console
            // not you can do anything Javascript-ly possible here
            console.log(props);
            console.log(attachment);
        },
        media_close: function(id){
            // this function is called when the media manager wants to close
            // (either close button or after sending the selected items)

            // restore editor objects from backup
            wp.media.editor.send.attachment = slider.media_send_attachment;
            wp.media.editor.remove = slider.media_close_window;

            // nullify the backup objects to free up some memory
            slider.media_send_attachment= null;
            slider.media_close_window= null;

            // trigger the actual remove
            wp.media.editor.remove(id);
        }
    };
    $(document).ready(doc.ready);
})(jQuery);
于 2012-12-18T11:56:37.140 回答
0

NHP 刚刚与 Redux Framework 合并,Redux 3.0 已经发布。它可以作为 Wordpress 插件运行或嵌入在主题中。你真的应该试试新版本。

http://wordpress.org/plugins/redux-framework/

它有完整的 Wordpress 媒体 3.5 支持,然后是一些。它不仅存储媒体 URL,还存储 ID 和全维度大小。

认真的,检查一下。

于 2013-11-01T04:38:58.493 回答
0

fyi...http://reduxframework.com/ 是 NHP 的一个分支,并添加了 3.5 媒体加载器并修复了 NHP 的其他区域。

我刚刚切换到并且到目前为止还不错。

于 2013-01-11T08:34:29.410 回答
0

请参阅我们的vafpress 主题框架github 代码片段中的用法:

WP < 3.5 后备的媒体管理器

在代码中,还有这个变量 ( vp_wp.use_new_media_upload),您需要通过 将其“公开”到您的 JS 代码中wp_localize_script,该变量需要说明您正在运行的 Wordpress 是否低于 3.5,如果低于 3.5 那么它是不应该使用新的媒体管理器,而是使用使用thickbox media-upload.php iframe的旧方法。

于 2013-01-20T11:31:21.520 回答