WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have learned how to create a post from the frontend but how about editing it ? This is the code I am trying to create a simple frontend form for posting.

Thank you

share|improve this question
up vote 2 down vote accepted

Just like the example you linked, but instead of using wp_insert_post() you use: wp_update_post() so your form becomes:

$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><label for="description">Description</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"><?php echo $post_to_edit->content; ?></textarea>
$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' ); ?>

<!--// edit Post Form -->

and the processing becomes:

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


now this has no validation so i leave it up to you.

share|improve this answer

Scribu Front End Editor havent tried it personally but i have read good stuff about it

share|improve this answer
Thanks I will take a look at it, it seems interesting, but I am searching for a simple source code so I will have the power of coding. – Xalloumokkelos May 16 '11 at 15:00
@punkis - take a look at the plugin source code if you want to learn how to do it. – anu May 16 '11 at 15:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.