Wordpress Front End Form to Publish/Draft Posts directly

Discussion in 'WordPress' started by mixhungama, Jul 3, 2012.

  1. #1
    I have a Wordpress Front End Form to Publish/Draft Posts directly from my theme: -

    <?php
    if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_post") {
    
        // Do some minor form validation to make sure there is content
        $title = $_POST["title"];
        if(!empty($_POST['middle'])) {
        $description = 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE. a sentence ' . $_POST['end'] . ' with something in the END.';
        }
        $tags = $_POST["tags"];
        $post_cat = $_POST['cat'];
    
        // ADD THE FORM INPUT TO $new_post ARRAY
        $new_post = array(
        'post_title'    =>  $title,
        'post_content'  =>  $description,
        'post_category' =>  $post_cat,  // Usable for custom taxonomies too
        'tags_input'    =>  $tags,
        'post_status'   =>  'draft',           // Choose: publish, preview, future, draft, etc.
        'post_type' =>  'post',  //'post',page' or use a custom post type if you want to
        );
    
        //SAVE THE POST
        $pid = wp_insert_post($new_post);
    
        //REDIRECT TO THE NEW POST ON SAVE
        $link = get_permalink( $pid );
        wp_redirect( '/post-submitted-draft' );
    
    } // END THE IF STATEMENT THAT STARTED THE WHOLE FORM
    
    //POST THE POST YO
    do_action('wp_insert_post', 'wp_insert_post');
    
    ?>
    PHP:
    and I have a simple php form which has the following function: -

    <?php
    if(!empty($_POST['middle'])) {
       echo "a sentence".$_POST['middle']." with something in the MIDDLE.";
    }
    
    if(!empty($_POST['end'])) {
       echo "a sentence".$_POST['end']." with something in the END.";
    }
    ?>
    PHP:
    I wanted to include it in the form and I did it using the method below: -

    if(!empty($_POST['middle'])) {
    $description = 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE. a sentence ' . $_POST['end'] . ' with something in the END.';
    PHP:
    but it will ignore the whole value of $description if the field of 'middle' is empty and I want it to ignore just the first sentence if the field of 'middle' is empty and display the second sentence which has the field of 'end' i.e.

    'a sentence ' . $_POST['end'] . ' with something in the END.';
    PHP:
    How to make it work like this?
     
    mixhungama, Jul 3, 2012 IP