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

问题描述 投票:0回答:1

我通过自定义帖子类型UI插件注册了自定义分类,并为我的CPT广告分配了它们。

当我在提交表单后通过function()添加新的广告时,我知道我需要的所有内容(title,custom_fields ...)但是我可以为我的新帖子设置已定义的一些自定义分类法吗?我知道在wp-admin中这样做...但是我必须在代码中设置它,当我从selectbox中选择一个自定义分类法时......

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

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

请问有可能吗?谢谢你的建议

wordpress custom-taxonomy
1个回答
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 codex页面了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.