我通过“自定义帖子类型” UI插件注册了“自定义分类法”,并将其分配给我的CPT广告。
当我在提交表单后通过function()添加新的Advertisement时,我知道设置了所有我需要的内容(标题,custom_fields ...),但是我可以为我的新Post设置已经定义的一些自定义分类法吗?我知道可以在wp-admin中执行此操作...但是当我从选择框中选择一种自定义分类法时,我不得不在代码中进行设置...
分配给我的自定义帖子类型的自定义分类法:
通过选择框设置自定义分类法:
<select name="taxonomy-market-type" class="custom-select" id="taxonomy-category">
<?php
$terms = get_terms( array(
'taxonomy' => 'advertisement_category',
'hide_empty' => false) );
?>
<option value="" hidden>Choose category</option>
<?php foreach ($terms as $term) { ?>
<option value="<?php echo $term->slug ?>"><?php echo $term->name; ?></option>
<?php } ?>
</select>
函数,我在其中添加新的自定义帖子类型:
function addAdvertisement() {
header('Content-Type: application/html;charset=utf-8');
$uploadDir = wp_upload_dir();
// Create post object
$my_post = array(
'post_title' => $_POST['name'],
'post_status' => 'publish',
'post_author' => get_current_user_id(),
'post_type' => 'advertisements'
);
$post_id = wp_insert_post( $my_post);
if(isset($POST['category'])) {
// add custom taxonomy here
}
// Insert the post into the database
add_post_meta($post_id, 'nazov_inzeratu', $_POST['name']);
add_post_meta($post_id, 'popis_inzeratu', $_POST['description']);
add_post_meta($post_id, 'fotka', implode(',', $uploadedImages));
add_post_meta($post_id, 'id_inzerat', $post_id);
echo get_permalink($post_id);
wp_die();
}
请问有可能吗?感谢您的建议
答案 0 :(得分:1)
是的,可以通过如下调用wp_set_post_terms()
来将自定义分类法分配给自定义帖子类型。
if(isset($POST['category'])) {
$adv_cat = array($POST['category']);
wp_set_post_terms( $post_id, $adv_cat, 'advertisement_category');
}
我希望这会起作用。 请查看this法典页面以获取更多信息。