Могу ли я установить зарегистрированную пользовательскую таксономию для своего пользовательского типа сообщения в коде? - PullRequest
0 голосов
/ 22 февраля 2019

Я зарегистрировал пользовательскую таксономию через пользовательский плагин пользовательского типа поста и назначил ее для своих рекламных объявлений CPT.

Когда я добавляю новую рекламу через функцию () после отправки моей формы, я знаю, что задаю все, что мне нужно (название,custom_fields ...) но можно ли установить уже определенные пользовательские таксономии для моей новой публикации?Я знаю, что делать это в wp-admin ... но мне приходилось устанавливать это в коде, когда я выбираю одну из пользовательских таксономий в окне выбора ...

Пользовательские таксономии, назначенные моему типу пользовательской записи:

enter image description here

Установить пользовательскую таксономию через 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();
}

Возможно ли это, пожалуйста?Спасибо за советы

1 Ответ

0 голосов
/ 23 февраля 2019

Да, можно назначить пользовательские таксономии для пользовательских типов сообщений, вызвав wp_set_post_terms() следующим образом.

if(isset($POST['category'])) {
    $adv_cat = array($POST['category']);
    wp_set_post_terms( $post_id, $adv_cat, 'advertisement_category');
}

Надеюсь, это сработает.Пожалуйста, посмотрите на эту страницу кодекса для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...