2016-06-13 3 views
1

태그가 있고 태그로 검색 할 수있는 주석이 필요한 프로젝트 작업 중입니다. WP로 구현하는 방법이 있습니까? 또는 몇 가지 해결 방법을 찾아야합니까 (예 : 주석 대신 자식 게시 유형을 만들고 태그를 적용하는 등)?WordPress - 주석에 태그 분류 추가

있다면 어떻게 할 수 있습니까?

감사합니다.

답변

0

주석 주석을 사용하여 특정 주석의 태그를 저장하고 검색 할 수 있습니다.

먼저 댓글 양식에 태그 입력란을 추가하고 태그를 채우십시오. 다음 코드는 주석 텍스트 영역 바로 뒤에 "select"필드를 추가하고 태그로 채 웁니다. 코멘트가 데이터베이스에 저장 한 후

add_filter('comment_form_defaults', 'change_comment_form_defaults'); 
function change_comment_form_defaults($default) { 
    $commenter = wp_get_current_commenter(); 
    $out = '<label for="comment_tags">Tags:</label><select name="comment_tags" multiple>'; 
    foreach (get_tags() as $tag) { 
     $out .= '<option value="<?php echo $tag->term_id; ?>"><?php echo $tag->name; ?></option>'; 
    } 
    $out .= '</select>'; 
    $default[ 'comment_field' ] .= $out; 
    return $default; 
} 

comment_post 작업이 즉시 실행됩니다. 게시물 메타를 저장하는 데 사용할 수 있습니다.

add_action('comment_post', 'add_tags_to_comment', 10, 2); 
function add_tags_to_comment($comment_ID, $comment_approved) { 
    foreach($_POST["comment_tags"] as $comment_tag) { 
     add_comment_meta($comment_ID, "comment_tag", $comment_tag); 
    } 
} 

선택한 태그를 단일 레코드에 배열로 저장하는 대신 각 태그를 별도의 레코드로 저장하는 것을 선호합니다. 이렇게하면 태그를 기반으로 한 주석을 더 쉽게 검색 할 수 있습니다.

당신이 주석의 태그를 검색 할

, 할 수 있습니다 get_comment_meta

$tags = get_comment_meta($comment_ID, "comment_tag"); 
foreach($tags as $tag_id) { 
    $tag_term = get_term($tag_id, 'post_tag'); 
    echo $tag_term->name; 
} 

사용 WP_Comment_Query 태그를 기반으로 의견을 검색 할 수 있습니다.

$tags = array(1,32,5,4); /* Replace it with tags you want to search */ 
$args = array(
    'meta_query' => array(
     array(
      'key' => 'comment_tag', 
      'value' => $tags, 
      'compare' => 'IN' 
     ) 
    ) 
); 
$comment_query = new WP_Comment_Query($args); 

희망이 도움이되었습니다.

관련 문제