1
我正在研究一個項目,需要評論纔能有標籤並且可以通過標籤進行搜索。有沒有辦法在WP中實現它,或者我應該尋找一些解決方法(比如創建子帖子類型而不是註釋並將標籤應用到它)?WordPress - 將標籤分類添加到評論
如果有,我該怎麼辦?
謝謝。
我正在研究一個項目,需要評論纔能有標籤並且可以通過標籤進行搜索。有沒有辦法在WP中實現它,或者我應該尋找一些解決方法(比如創建子帖子類型而不是註釋並將標籤應用到它)?WordPress - 將標籤分類添加到評論
如果有,我該怎麼辦?
謝謝。
您可以使用評論元來存儲和檢索特定評論的標籤。
首先,將標記字段添加到評論表單並填充標記。以下代碼將在註釋textarea後立即添加一個「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);
希望這對你有所幫助。