我想从前端提交自定义帖子。我已经做好了准备让这一切发生。但我想上传wordpress的特色图片表单添加媒体按钮。
代码为
<?php
/*
Template Name: post submition Template
Description: Use this page template to hide the sidebar. Alternatively
you can simply remove all widgets from your sidebar to hide it on
all pages.
*/
?>
<?php get_header(); ?>
<?php
// Check if the form was submitted
if( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] )) {
// Do some minor form validation to make sure there is content
if (isset ($_POST[\'title\'])) {
$title = $_POST[\'title\'];
} else {
echo \'Please enter a title\';
}
if (isset ($_POST[\'description\'])) {
$description = $_POST[\'description\'];
} else {
echo \'Please enter the content\';
}
// Add the content of the form to $post as an array
$post = array(
\'post_title\' => $title,
\'post_content\' => $description,
\'post_category\' => $_POST[\'cat\'], // Usable for custom taxonomies too
\'post_status\' => \'draft\', // Choose: publish, preview, future, etc.
\'post_type\' => \'contast\' // Use a custom post type if you want to
);
echo $pid = wp_insert_post($post); // Pass the value of $post to WordPress the insert function
if ($_FILES) {
array_reverse($_FILES);
$i = 0;//this will count the posts
foreach ($_FILES as $file => $array) {
if ($i == 0) $set_feature = 1; //if $i ==0 then we are dealing with the first post
else $set_feature = 0; //if $i!=0 we are not dealing with the first post
$newupload = insert_attachment($file,$pid, $set_feature);
echo $i++; //count posts
}
}
//attachment helper function
// http://codex.wordpress.org/Function_Reference/wp_insert_post
//wp_redirect( \'/submit-2/\' ); // redirect to home page after submit
} // end IF
// Do the wp_insert_post action to insert it
?>
<form action="" method="post" enctype="multipart/form-data">
<p><label for="title">Titolo</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>
<p><label for="description">Testo</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<p align="right"><input type="submit" value="Invia" tabindex="6" id="submit" name="submit" /></p>
<input type="hidden" name="post_type" id="post_type" value="domande" />
<input type="hidden" name="action" value="post" />
<?php wp_nonce_field( \'new-post\' ); ?>
</form>
<?php get_footer(); ?>
功能是
function insert_attachment($file_handler,$post_id,$setthumb=\'false\') {
if ($_FILES[$file_handler][\'error\'] !== UPLOAD_ERR_OK){ return __return_false();
}
require_once(ABSPATH . "wp-admin" . \'/includes/image.php\');
require_once(ABSPATH . "wp-admin" . \'/includes/file.php\');
require_once(ABSPATH . "wp-admin" . \'/includes/media.php\');
echo $attach_id = media_handle_upload( $file_handler, $post_id );
//set post thumbnail if setthumb is 1
if ($setthumb == 1) update_post_meta($post_id,\'_thumbnail_id\',$attach_id);
return $attach_id;
}