Wp_set_post_terms не работает

17 сент. 2013 г., 22:00:40
Просмотры: 22.2K
Голосов: 4

Мой код не работает, он не добавляет таксономию

add_action('init', 'post_test', 10);
function post_test() {
    $empty = get_page_by_title('Produto teste', OBJECT, 'produtos');
    if(empty($empty)) {
        $insert_post = array(
            'post_status' => 'publish',
            'post_type' => 'produtos', // тип записи produtos
            'post_title' => 'Produto teste', // заголовок тестового продукта
        );
        $post_id = wp_insert_post($insert_post);
        if ($post_id) {
            wp_set_post_terms($post_id, array('metais'), 'categoria-produtos'); // термин metais с id 108
        }
        add_post_meta($post_id, 'fornecedores', '5948'); // id поставщика
        add_post_meta($post_id, '_fornecedores', 'field_52377232eb265');
    }
}

почему не работает?

0
Все ответы на вопрос 1
5
22

Как указано в wp_set_post_terms комментарии:

Эта функция работает только с родным типом записи. Для таксономии в пользовательском типе записи используйте wp_set_object_terms()

wp_set_object_terms

17 сент. 2013 г. 22:11:23
Комментарии

Спасибо, брат, этот код работает! : wp_set_object_terms($post_id, array('metais'), 'categoria-produtos', true); // id тега metais равно 108 спасибо спасибо

Raank Raank
17 сент. 2013 г. 22:17:21

Это уже не так. Для WP 5+ вы можете использовать оба варианта даже для пользовательских типов записей.

Anatol Bivol Anatol Bivol
10 февр. 2019 г. 11:23:21

Теперь в Codex указано: Эта функция будет работать с любым типом записи. Альтернативно можно использовать wp_set_object_terms().

Anatol Bivol Anatol Bivol
10 февр. 2019 г. 11:29:13

@ToleaBivol Не могу это подтвердить, потратил 4 часа на поиски причины, почему не устанавливалась пользовательская таксономия, оказалось, что есть разница между wp_set_post_terms и wp_set_object_terms

n.r. n.r.
23 авг. 2020 г. 00:05:26

Классическое качество кода Wordpress.

marek.m marek.m
8 февр. 2021 г. 10:16:16