我可以在代码中为我的“自定义帖子类型”设置注册的“自定义分类”吗?

时间:2019-02-22 12:16:22

标签: wordpress custom-taxonomy

我通过“自定义帖子类型” UI插件注册了“自定义分类法”,并将其分配给我的CPT广告。

当我在提交表单后通过function()添加新的Advertisement时,我知道设置了所有我需要的内容(标题,custom_fields ...),但是我可以为我的新Post设置已经定义的一些自定义分类法吗?我知道可以在wp-admin中执行此操作...但是当我从选择框中选择一种自定义分类法时,我不得不在代码中进行设置...

分配给我的自定义帖子类型的自定义分类法:

enter image description here

通过选择框设置自定义分类法:

<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();
}

请问有可能吗?感谢您的建议

1 个答案:

答案 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法典页面以获取更多信息。