webentwicklung-frage-antwort-db.com.de

front-End-Publishing funktioniert nicht auf der Front-End-Seite

Ich habe ein benutzerdefiniertes Front-End-Veröffentlichungsformular auf meiner Website, das auf diesem Artikel basiert.

Es funktioniert einwandfrei, wenn ich diesen Code in eine Seite einfüge, aber wenn es auf der Front-End-Seite (Homepage) nicht funktioniert und wenn ich das Formular abschicke, werde ich zu einer archive.php-Seite weitergeleitet, dem Archiv Seite aus der post_category, die ich in meinem Formular ausgewählt habe.

  'post_category' =>  array($_POST['cat'])

  <!-- 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>

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

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>
2
user2882154

dank @TheDeadMedic habe ich die Lösung gefunden. Ich habe reservierte Begriffe verwendet, und deshalb hat Wordpress meine Eingaben als Abfrageparameter interpretiert.

so musste ich zum Beispiel bei meinen Kategorien die Klassen in meiner Form ändern:

  'post_category' =>  array($_POST['cat']), // Usable for custom taxonomies too

durch

  'post_category' =>  array($_POST['my_cat']), // Usable for custom taxonomies too

und in meiner Form der Klassenname "cat" von "my_cat".

Ich musste dies jedes Mal ändern, wenn ich einen reservierten Begriff verwendete.

und jetzt funktioniert es einwandfrei!

1
user2882154