programing

Wordpress API: 게시물에 태그 추가/제거

muds 2023. 3. 22. 22:15
반응형

Wordpress API: 게시물에 태그 추가/제거

간단한 조작이라고 생각됩니다만, 투고 ID를 사용해 투고에 태그를 프로그램적으로 추가 및 삭제하는 방법을 설명하는 자료나 문서를 찾을 수 없습니다.

아래는 사용하고 있는 샘플입니다만, 다른 태그는 모두 덮어쓰는 것 같습니다.

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

먼저 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;
}

사용해보십시오.wp_add_post_tags($post_id,$tags);

방법은 다음과 같습니다.

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

주의:wp_set_object_terms()에서는 두 번째 파라미터가 배열이 될 것으로 예상하고 있습니다.

WordPress 3.6부터wp_remove_object_terms( $object_id, $terms, $taxonomy )그게 바로 그거지.

$terms파라미터는slug(s)또는ID(s)term(s)배열, int 또는 문자열을 제거 및 수락합니다.

출처 : http://codex.wordpress.org/Function_Reference/wp_remove_object_terms

만약 당신이 포스트 아이디를 모른다면요?생성된 모든 새 게시물에 태그를 추가하시겠습니까?

WordPress API 기능을 사용하는 경우add_action('publish_post', 'your_wp_function');호출하고 있는 함수는 자동으로 다음 값을 가져옵니다.post_id첫 번째 인수로 삽입됩니다.

function your_wp_function($postid) {
}

실제로 wp_set_object_terms는 필요한 모든 것을 혼자서 처리할 수 있습니다.

다른 기능이 꼭 필요한 경우:

function addTag($post_id, $term, $tax='post_tag') {
    return wp_set_object_terms($post_id, $term, $tax, TRUE);
}

wp_set_object_terms의 파라미터:

  1. 포스트 아이디
  2. 접수...
    • 단일 문자열(예: 'Awesome Posts')
    • 기존 태그의 단일 ID(예: 1) 또는
    • 배열(예: 배열('Awesome Posts', 1))
    • 메모: NON-ID를 지정하면 태그가 자동으로 생성됩니다.
  3. 분류법(예: 기본 태그의 경우 'post_tag' 사용)
  4. 할 것인지...
    • (FALSE) 기존의 모든 용어를 제공된 용어로 대체하십시오.
    • (TRUE_) 기존 용어에 추가/추가합니다.

해피 코딩!

언급URL : https://stackoverflow.com/questions/2436487/wordpress-api-add-remove-tags-on-posts

반응형