我正在尝试从前端表单向自定义分类法添加术语。我设法创建了一个表单,该表单通过另一个自定义帖子类型的帖子中的值填充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>