2016-05-13 11 views
0

Ich verwende ein benutzerdefiniertes Front-End-Publishing-Formular auf meiner Website, basierend auf Artikel this.Front-End-Publishing funktioniert nicht auf Front-End-Seite

Es funktioniert perfekt, wenn ich diesen Code in eine Seite einfügen, aber wenn auf der Startseite (Homepage), funktioniert es nicht, und wenn ich das Formular abschicke, werde ich zu einer archive.php weitergeleitet Seite, die Archivseite aus der post_category, die ich in meinem Formular ausgewählt habe.

weiß jemand, warum es auf allen anderen Seiten funktioniert, aber nicht auf der ersten Seite?

hier ist mein PHP-Code:

<?php 
if('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == "new_post") { 

    // Do some minor form validation to make sure there is content 
    if (isset ($_POST['title'])) { 
    $title = $_POST['title']; 
    } else { 
    echo 'veuillez entrer un titre'; 
    } 
    if (isset ($_POST['description'])) { 
    $description = $_POST['description']; 
    } else { 
    echo 'veuillez entrer du texte'; 
    } 

    $genre = $_POST['genre']; 
    $tranche_age = $_POST['tranche_age']; 

    // ADD THE FORM INPUT TO $new_post ARRAY 
    $new_post = array(
    'post_title' => $title, 
    'post_content' => $description, 
    'post_category' => array($_POST['cat']), // Usable for custom taxonomies too 
    //'tax_input' => array('regions' => '14'), 
    'post_status' => 'publish',   // Choose: publish, preview, future, draft, etc. 
    'post_type' => 'post', //'post',page' or use a custom post type if you want to 
    //'genre' => $genre, 
    //'tranche_age' => $tranche_age, 
); 


    //SAVE THE POST 
    $pid = wp_insert_post($new_post); 



    wp_set_post_terms($pid,array($_POST['regions']),'regions',true); 
    wp_set_post_terms($pid,array($_POST['sexes']),'sexes',true); 
    wp_set_post_terms($pid,array($_POST['ages']),'ages',true); 


    //REDIRECT TO THE NEW POST ON SAVE 
    $link = site_url(); 
    wp_redirect($link); 

    //ADD OUR CUSTOM FIELDS 
    //add_post_meta($pid, 'genre', $genre, true); 
    //add_post_meta($pid, 'tranche_age', $tranche_age, true); 


} // END THE IF STATEMENT THAT STARTED THE WHOLE FORM 

//POST THE POST YO 
do_action('wp_insert_post', 'wp_insert_post'); 

?> 

    <div id="container"> 
     <div id="content" role="main"> 

    <!-- FRONT END PUBLISHING --> 

    <div class="wpcf7"> 
    <form id="new_post" name="new_post" method="post" action="" class="wpcf7-form" enctype="multipart/form-data"> 
     <!-- post name --> 
     <fieldset name="name"> 
     <label for="title">Titre:</label> 
     <input type="text" id="title" value="" tabindex="5" name="title" /> 
     </fieldset> 

     <!-- post Category --> 
     <fieldset class="category"> 
     <label for="cat">Catégorie :</label> 
     <?php wp_dropdown_categories('tab_index=10&taxonomy=category&hide_empty=0&show_option_all=Choisissez une catégorie'); ?> 
     </fieldset> 

     <!-- post regions --> 
     <fieldset class="regions"> 
     <label for="regions">Région :</label> 
     <?php wp_dropdown_categories('name=regions&tab_index=10&taxonomy=regions&hide_empty=0&show_option_all=Choisissez une catégorie'); ?> 
     </fieldset> 

     <!-- post Content --> 
     <fieldset class="content"> 
     <label for="description">Question :</label> 
     <textarea id="description" tabindex="14" name="description" cols="80" rows="10"></textarea> 
     </fieldset> 

     <!-- Genre --> 
     <input type="hidden" id="sexes" name="sexes" value="26" /> 


     <!-- Tranche d'âge --> 
     <?php $date_of_birth = um_user('birth_date'); $age = CalculateAge($date_of_birth); ?> 

     <?php if ($age >= 18 && $age <= 25) :?> 

     <input type="hidden" value="28" id="ages" name="ages" /> 

     <?php endif; ?> 

     <?php if ($age >= 26 && $age <= 35) :?> 

     <input type="hidden" value="29" id="ages" name="ages" /> 

     <?php endif; ?> 

     <?php if ($age >= 36 && $age <= 45) :?> 

     <input type="hidden" value="30" id="ages" name="ages" /> 

     <?php endif; ?> 

     <?php if ($age >= 46) :?> 

     <input type="hidden" value="31" id="ages" name="ages" /> 

     <?php endif; ?> 





     <fieldset class="submit"> 
     <input type="submit" value="Envoyer" tabindex="40" id="submit" name="submit" /> 
     </fieldset> 

     <input type="hidden" name="action" value="new_post" /> 
     <?php wp_nonce_field('new-post'); ?> 
    </form> 
</div> 

</div> 
</div> 
+0

Ihr Zuhause ist custom home-page Vorlage oder index.php? –

+0

Hallo, mein Zuhause ist eine benutzerdefinierte Vorlage. es ist eine WordPress-Seite, und ich habe im Backoffice definiert, diese Seite als Startseite zu verwenden. Ich habe auch festgestellt, dass ich dieses Problem habe, wenn ich meine wp_insert_post in "archive.php" und "search.php" füge ... hast du irgendwelche Ideen? – mmdwc

+0

das funktionierte für mich –

Antwort

0

Verwendung form action

action="<?php bloginfo('url'); ?>" 
+0

danke für deine antwort, aber es funktioniert nicht ... hast du irgendwelche ideen? Ist das, wo ich das hinzufügen muss?

mmdwc

+0

Bitte teilen Sie Ihre Homepage Vorlage. –