J'ai appris à créer un message depuis le frontend, mais que diriez-vous de le modifier? Ceci est le code J'essaie de créer un formulaire frontal simple pour poster
Je vous remercie
Tout comme l'exemple que vous avez lié, mais au lieu d'utiliser wp_insert_post()
, vous utilisez: wp_update_post()
pour que votre formulaire devienne:
<?php
$post_to_edit = get_post($post_id);
?>
<!-- edit Post Form -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">
<p><label for="title">Title</label><br />
<input type="text" id="title" value="<?php echo $post_to_edit->post_title; ?>" tabindex="1" size="20" name="title" />
</p>
<p><label for="description">Description</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"><?php echo $post_to_edit->content; ?></textarea>
</p>
<p><?php
$cat = wp_get_post_terms( $post_to_edit->ID, 'category');
wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=categoryselected='.$cat[0]->term_id); ?></p>
<p><label for="post_tags">Tags</label>
<input type="text" value="<?php the_terms( $post_to_edit->ID, 'post_tag', '', ', ', '' ); ?>" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>
<input type="hidden" name="action" value="f_edit_post" />
<input type="hidden" name="pid" value="<?php echo $post_to_edit->ID; ?>" />
<?php wp_nonce_field( 'new-post' ); ?>
</form>
</div>
<!--// edit Post Form -->
et le traitement devient:
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "f_edit_post" && isset($_POST['pid'])) {
//get the old post:
$post_to_edit = get_post((int)$_POST['pid']);
//do you validation
//...
//...
// Add the content of the form to $post_to_edit array
$post_to_edit['post_title'] = $_post['title']
$post_to_edit['post_content'] = $_post['description']
$post_to_edit['tags_input'] = array($_post['post_tags'])
//save the edited post and return its ID
$pid = wp_update_post($post_to_edit);
//set new category
wp_set_post_terms($pid,(array)($_POST['cat']),'category',true);
}
maintenant cela n'a pas de validation alors je vous le laisse.
Scribu Front End Editor Je n'ai pas essayé personnellement, mais j'ai lu de bonnes choses à ce sujet.