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);
}
}
我在形式與該文件上傳字段,但是我不知道如何我可以將上傳保存在某個地方,然後作爲下載提供給後端的帖子。關於如何實現這一點的任何想法?
我試過使用上面的文檔,但文檔是針對已存在的帖子,並且有一個ID插入表單。我試圖修改它以採用創建的帖子的帖子ID,但沒有運氣。上面的表格創建了一個全新的帖子;任何想法如何我可以附加一個文件,當我還沒有一個ID? –