前端无需插件即可为用户张贴和上传文件、图像

时间:2015-09-08 作者:clap

有多个用户必须在各自的帖子类型(如新闻、报告等)上发布自己的帖子,并在前端提供功能图片上传、额外文件(pdf、txt、excel)上传按钮,由管理员从后端批准。

我已经解决了功能图像,但我挂起了从前端上传文件的想法,为各自的职位。

我也使用metabox从后端上传了文件,但不知道如何从前端上传。有什么建议吗?

2 个回复
SO网友:Dev

使用wp_handle_upload 在自定义函数中

if ( $_FILES ) {
upload_user_file($_FILES[\'test_upload\']);
}


if ( ! function_exists( \'upload_user_file\' ) ) :
    function upload_user_file( $file = array(), $title = false ) {

        require_once ABSPATH.\'wp-admin/includes/admin.php\';

        $file_return = wp_handle_upload($file, array(\'test_form\' => false));

        if(isset($file_return[\'error\']) || isset($file_return[\'upload_error_handler\'])){

            return false;

        }else{

            $filename = $file_return[\'file\'];

            $attachment = array(
                \'post_mime_type\' => $file_return[\'type\'],
                \'post_content\' => \'\',
                \'post_type\' => \'attachment\',
                \'post_status\' => \'inherit\',
                \'guid\' => $file_return[\'url\']
            );

            if($title){
                $attachment[\'post_title\'] = $title;
            }

            $attachment_id = wp_insert_attachment( $attachment, $filename );

            require_once(ABSPATH . \'wp-admin/includes/image.php\');

            $attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename );

            wp_update_attachment_metadata( $attachment_id, $attachment_data );

            if( 0 < intval( $attachment_id ) ) {
                return $attachment_id;
            }
        }

        return false;
    }
endif;

SO网友:grlwondr

这个插件是否可能提供您所需要的?Frontend Uploader.

此插件是用户向站点提交内容的一种简单方法。该插件使用一组短代码,让您可以为帖子和页面创建高度可定制的提交表单。提交内容后,将保留该内容以供审核,直到您批准为止。