我有一个前端表单,它使用户能够创建帖子。它只发送文本类型的标题、说明和自定义字段。但我也想在表单中添加一个类别选项,显示当前类别的列表,并让用户为他们的新帖子选择一个或多个类别。(选定的类别将分配给新职位。(
这是一个WordPress网站,我使用Avada主题。自定义帖子类型是Avada的默认投资组合帖子。但概括的答案也会很有帮助(请对您的代码进行一些解释(。
所以,这是我的php代码,在我的孩子主题:中的fuctions.php
if(isset($_POST['title'])){
$custom_field_address1 = $_POST['address1'];
$my_post = array(
'post_title' => $_POST['title'],
'post_content' => $_POST['description'],
'post_status' => 'publish',
'post_type' => 'companies',
'meta_input' => array(
'address1' => $custom_field_address1,
)
);
$post_id = wp_insert_post($my_post);
add_post_meta( $post_id, 'address1', $custom_field_address1, false );
echo 'New Post Saved !';
die;
}
我的前端表单(我想查看投资组合帖子类型的所有类别,并选择我想要的(:
<form method="post">
<div class="form-group">
<label for="title">Post Title:</label>
<input type="text" class="form-control" id="title" name="title">
</div>
<div class="form-group">
<label for="pwd">Post Description :</label>
<textarea class="form-control" name="description"></textarea>
</div>
<div class="form-group">
<label for="address1">Address :</label>
<input type="text" name="address1" id="address1">
</div>
<BR>
<button type="submit" class="btn btn-default">Submit</button>
</form>
我读过很多这样的答案,但大多数都只是别人网站的代码,解释太少了。所以,我需要得到更多的帮助。
您可以创建一个选择。只是使用get_terms
或类似函数来获取类别列表。
$categories = get_terms( [
'taxonomy' => 'category',
'hide_empty' => false,
'field' => 'id=>name'
] );
?>
<select name="category">
<?php foreach( $categories as $category_id => $category_name ) { ?>
<option value="echo absint( $category_id ); ?>"><?php echo esc_html( $category_name ); ?></option>
<?php } ?>
</select>