将文件上载到插件菜单

时间:2017-04-22 作者:Berzerkfar

我目前正在尝试构建wordpress插件。我希望它的用户能够将上传文件添加到我的插件的设置字段菜单中,然后注册到wordpress数据库中,有什么方法可以做到这一点吗?

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

我想我已经走上了那条路。看看wp_handle_upload, 将您的文件上载到/uploads目录,然后wp_insert_attachmentwp_generate_attachment_metadata 将上述上传内容作为附件列在媒体库中,该附件将“在wordpress数据库中注册”。然后,您可以像这样查询附件:

$attachments = get_posts( array( \'post_type\' => \'attachment\') );

SO网友:Nate

使用jQuery加载媒体管理器
这是我找到的一个示例JS文件。我希望这有帮助。

(function($) {

$(document).ready( function() {
    var file_frame; // variable for the wp.media file_frame

    // attach a click event (or whatever you want) to some element on your page
    $( \'#frontend-button\' ).on( \'click\', function( event ) {
        event.preventDefault();

        // if the file_frame has already been created, just reuse it
        if ( file_frame ) {
            file_frame.open();
            return;
        } 

        file_frame = wp.media.frames.file_frame = wp.media({
            title: $( this ).data( \'uploader_title\' ),
            button: {
                text: $( this ).data( \'uploader_button_text\' ),
            },
            multiple: false // set this to true for multiple file selection
        });

        file_frame.on( \'select\', function() {
            attachment = file_frame.state().get(\'selection\').first().toJSON();

            // do something with the file here
            $( \'#frontend-button\' ).hide();
            $( \'#frontend-image\' ).attr(\'src\', attachment.url);
        });

        file_frame.open();
    });
});

})(jQuery);

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。