Wordpress API: Добавьте / Удаляют, Наклеивает Сообщения

Я знаю, что это походит на простую операцию, но я не могу найти ресурс или документацию, которая объясняет, как программно добавить и удалить теги к сообщению с помощью идентификатора сообщения.

Ниже образец того, что я использую, но это, кажется, перезаписывает все другие теги...

function addTerm($id, $tax, $term) {

    $term_id = is_term($term);
    $term_id = intval($term_id);
    if (!$term_id) {
        $term_id = wp_insert_term($term, $tax);
        $term_id = $term_id['term_id'];
        $term_id = intval($term_id);
    }
    $result =  wp_set_object_terms($id, array($term_id), $tax, FALSE);

    return $result;
}
12
задан st4ck0v3rfl0w 12 March 2010 в 23:11
поделиться

3 ответа

Сначала необходимо вызвать get_object_terms , чтобы получить все уже существующие термины.

Обновленный код

function addTerm($id, $tax, $term) {

    $term_id = is_term($term);
    $term_id = intval($term_id);
    if (!$term_id) {
        $term_id = wp_insert_term($term, $tax);
        $term_id = $term_id['term_id'];
        $term_id = intval($term_id);
    }

    // get the list of terms already on this object:
    $terms = wp_get_object_terms($id, $tax)
    $terms[] = $term_id;

    $result =  wp_set_object_terms($id, $terms, $tax, FALSE);

    return $result;
}
5
ответ дан 2 December 2019 в 20:40
поделиться

Попробуйте использовать wp_add_post_tags ($ post_id, $ tags) ;

4
ответ дан 2 December 2019 в 20:40
поделиться

Вот как я это делаю:

$tag="This is the tag"
$PostId=1; //
wp_set_object_terms( $PostId, array($tag), 'post_tag', true );

Примечание: wp_set_object_terms() ожидает, что второй параметр будет массивом.

2
ответ дан 2 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: