File Upload from Frontend

时间:2012-02-04 作者:Umesh Awasthi

我正在写一个博客,用户可以通过UI提交自己的故事。

我想做的是,如果用户提交他/她的故事,它应该在仪表板中可见,我可以从仪表板中获取附加文档。我所能想到的只有一个通知,其余的都应该可以从仪表板本身进行管理。

如何实现上述目标?

2 个回复
SO网友:Fontepink

标题前:

<?php 
    $post_id = $post->ID;
    if ( isset( $_POST[\'html-upload\'] ) && ! empty( $_FILES ) ) {
        require_once( ABSPATH . \'wp-admin/includes/admin.php\' );
        $id = media_handle_upload( \'async-upload\', $post_id ); //post id of Client Files page
        unset( $_FILES );
        if( is_wp_error( $id ) ) {
            $errors[\'upload_error\'] = $id;
            $id = false;
        }

        if( $errors ) {
            echo "<p>There was an error uploading your file.</p>";
        } else {
            echo "<p>Your file has been uploaded.</p>";
        }
    }
?>
之后,在需要表单的地方添加以下内容:

<?php if ( is_user_logged_in() ) {      ?>

    <form id="file-form" enctype="multipart/form-data" action="<?php echo $_SERVER[\'REQUEST_URI\']; ?>" method="POST">
        <p id="async-upload-wrap"><label for="async-upload">File Upload:</label>
        <input type="file" id="async-upload" name="async-upload"> <input type="submit" value="Upload" name="html-upload"></p>

        <p><input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id ?>" />
        <?php wp_nonce_field( \'client-file-upload\' ); ?>
        <input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>" /></p>

        <p><input type="submit" value="Save all changes" name="save" style="display: none;"></p>
    </form>

<?php } ?>

SO网友:Michelle

Gravity Forms 这方面效果很好。您可以创建一个表单,该表单显示在网站前端,供访问者填写字段。这些可以包括您想要的任何内容,包括允许他们上传图像或文档。表单提交后,将创建一个草稿WordPress“;“发布”;然后可以对其进行更新/编辑和发布。

祝你好运

结束