【问题标题】:front end publishing not working on front-end page前端发布在前端页面上不起作用
【发布时间】:2016-09-09 22:41:07
【问题描述】:

我在我的网站上使用自定义前端发布表单,基于 this 文章。

当我将此代码放在页面中时,它可以正常工作,但是在前端页面(主页)上时,它不起作用,并且当我提交表单时,我被重定向到 archive.php 页面,我在表单中选择的 post_category 中的存档页面。

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

任何人都知道为什么它适用于所有其他页面,但不适用于首页?

这是我的 php 代码:

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

【问题讨论】:

  • 你家是自定义首页模板还是index.php?
  • 你好,我家是自定义模板页面。这是一个 wordpress 页面,我在后台定义了将此页面用作首页。我也意识到在“archive.php”和“search.php”中添加我的 wp_insert_post 时我遇到了这个问题......你有什么想法吗?
  • 这对我有用

标签: php wordpress frontend archive


【解决方案1】:

使用表单操作

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

【讨论】:

  • 感谢您的回复,但它不起作用...您有什么想法吗?这是我需要添加的地方吗?
  • 请分享您的主页模板。
猜你喜欢
  • 2017-05-21
  • 2019-10-13
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
相关资源
最近更新 更多