我通过自定义帖子类型UI插件注册了自定义分类,并为我的CPT广告分配了它们。
当我在提交表单后通过function()添加新的广告时,我知道我需要的所有内容(title,custom_fields ...)但是我可以为我的新帖子设置已定义的一些自定义分类法吗?我知道在wp-admin中这样做...但是我必须在代码中设置它,当我从selectbox中选择一个自定义分类法时......
分配给我的自定义帖子类型的自定义分类:
通过选择框设置自定义分类:
<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();
}
请问有可能吗?谢谢你的建议
是的,可以通过调用wp_set_post_terms()
将自定义分类法分配给自定义帖子类型,如下所示。
if(isset($POST['category'])) {
$adv_cat = array($POST['category']);
wp_set_post_terms( $post_id, $adv_cat, 'advertisement_category');
}
我希望这会奏效。请查看this codex页面了解更多信息。