2015-07-20 51 views
1

我試圖爲WordPress分配上傳者,並且我希望登錄的用戶能夠通過前端的表單提交數據並讓它在後端創建一個帖子。我已經能夠創建一個短代碼功能,允許管理員選擇他們希望此表單顯示的位置,並且當表單提交時,它確實會在後端創建一個帖子。問題是,我希望登錄用戶能夠將文件附加到帖子中,以便管理員可以從後端下載文件。如何使用前端提交表單附加文件?

下面是形式的簡碼:

add_shortcode('assignmentForm','wprmAssignmentForm'); 
function wprmAssignmentForm() { 

if (is_user_logged_in()){ ?> 
    <form id="custom-post-type" name="custom-post-type" method="post" action=""> 
     <p> 
     <label for="title">Assignment Title</label><br /> 
     <input type="text" id="title" value="" tabindex="1" size="20" name="title" /> 
     </p> 

     <p> 
     <label for="description">Assignment Content</label><br /> 
     <?php //wp_editor('', 'description', array('media_buttons' => false, 'textarea_rows'=>5)); ?> 
     <textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea> 
     </p> 

     <p> 
     <label for="upload">Upload File</label><br /> 
     <input type="file" name="upload" id="upload"> 
     </p> 

     <p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p> 

     <input type="hidden" name="post-type" id="post-type" value="custom_posts" /> 
     <input type="hidden" name="action" value="custom_posts" /> 

     <?php wp_nonce_field('name_of_my_action','name_of_nonce_field'); ?> 

    </form> 

    <?php 

    if($_POST){ 
     wprmSaveSubmission(); 
    } 

} 
else { 
    echo '<p>You must be logged in to submit an assignment!</p>'; 
} 

} 

,這裏是保存功能:

function wprmSaveSubmission() { 

if (empty($_POST) || !wp_verify_nonce($_POST['name_of_nonce_field'],'name_of_my_action')) { 
    exit; 
} 
else { 

    // Basic validation 
    if (isset ($_POST['title'])) { 
     $title = $_POST['title']; 
    } 
    else { 
     echo 'Please enter a title'; 
     exit; 
    } 
    if (isset ($_POST['description'])) { 
     $description = $_POST['description']; 
    } 
    else { 
     echo 'Please enter the content'; 
     exit; 
    } 

    // Add the content of the form to $post as an array 
    $post = array(
    'post_title' => wp_strip_all_tags($title), 
    'post_content' => $description, 
    'post_status' => 'publish',    
    'post_type' => 'wprm-assignments' 
    ); 
    wp_insert_post($post); 

} 

} 

我在形式與該文件上傳字段,但是我不知道如何我可以將上傳保存在某個地方,然後作爲下載提供給後端的帖子。關於如何實現這一點的任何想法?

回答

0

Wordpress提供預定義的功能將媒體上傳到網站。在自定義代碼中使用這些函數,您可以將任何wordpress支持的文件作爲附件上傳到媒體中。

這裏是link它可以幫助你進一步瞭解如何在你的代碼中使用這些函數。

試試這個,讓我知道如果這可以解決您的問題。

+0

我試過使用上面的文檔,但文檔是針對已存在的帖子,並且有一個ID插入表單。我試圖修改它以採用創建的帖子的帖子ID,但沒有運氣。上面的表格創建了一個全新的帖子;任何想法如何我可以附加一個文件,當我還沒有一個ID? –

相關問題