从前端表单向WP添加自定义分类术语

时间:2018-07-04 11:44:07

标签: php wordpress login taxonomy

我正在尝试从前端表单向自定义分类法添加术语。我设法创建了一个表单,该表单通过另一个自定义帖子类型的帖子中的值填充select。但是我认为我的表单处理程序无法正常工作...当我单击“提交”时,表单将我带到“ http://therealaddress.com/wp-admin/admin-post.php”,并且什么都没有发生(分类没有新术语,也没有转发到我想要的页面)。 ..(是的,我将therealaddress.com更改为隐藏我的真实地址,这不是错误的地址:D)

我想将用户转发回提交表单后的页面。

在我的主题funtions.php中,我的表单处理部分看起来像这样

function horse_taxonomy_adder() {
// splitting the select options value from "horses-real-name:Horses Real Name" to "horses-real-name" and "Horses Real Name"
$horsename = ( $_POST['horsename'] );
$hn_slug = split(':', $horsename)[0];
$hn_name = split(':', $horsename)[1];

wp_insert_term(
    'hn_name', // the term 
    'hevoset', // the taxonomy
    array(
        'slug' => $hn_slug,
    )
 );
// add the admin notice
$admin_notice = "success";
// redirect the user to the page called "Hallinta"
$page = get_page_by_title('hallinta');
$this->wp_redirect(get_permalink($page->ID));

exit;
}           

add_action('admin_post_add_horsetaxonomy','horse_taxonomy_adder');

我的表单如下:

<form action="http://therealaddress.com/wp-admin/admin-post.php" method="POST">
  <input type="hidden" name="action" value="horse_taxonomy_adder">
  <div class="form-group">
    <label for="exampleInputEmail1">Valitse hevonen jolle päiväkirja luodaan</label>
    <select name="horsename">
    <?php
      global $post;
      $args = array( 'numberposts' => -1, 'post_type' => 'hevonen');
      $posts = get_posts($args);
      foreach( $posts as $post ) : setup_postdata($post); ?>
        <option value="<? echo $post->post_name; ?>:<?php the_title(); ?>"><?php the_title(); ?></option>
      <?php endforeach; ?>
     </select>
   </div>
   <button type="submit" name="submit" class="btn btn-primary">Lisää päiväkirja</button>
 </form>

0 个答案:

没有答案