使用 wp_list_comments() 在 wordpress 中使用元键过滤评论
Posted
技术标签:
【中文标题】使用 wp_list_comments() 在 wordpress 中使用元键过滤评论【英文标题】:Filter comments with meta key in wordpress using wp_list_comments() 【发布时间】:2021-05-26 10:25:54 【问题描述】:基本上,我正在尝试使用“meta_key”和值过滤 cmets。我得到了评论元数据,但没有出现回复链接。任何人都可以帮助我解决这个问题。我尝试使用 wp_list_cmets() 但我不知道如何使用 meta_key 值。
代码如下:
<div class="comment-section">
<?php
$issue = array(
'meta_query' => array(
array(
'key' => 'comment-type',
'value' => 'Idea'
)
)
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $issue );
if( $comments ) :
foreach( $comments as $comment ) :
?>
<div class="comment-author vcard">
<?php echo($comment->comment_content);?>
<div class="reply"><?php
// Display comment reply link
comment_reply_link( array_merge( $args, array(
'add_below' => $add_below,
'depth' => $depth,
'max_depth' => $args['max_depth']
) ) ); ?>
</div>
</div><!-- .comment-details -->
<?php
endforeach;
endif;
?>
</div>
请告诉我回复链接的显示方式。
【问题讨论】:
【参考方案1】:我已经解决了
$comments = get_comments(array(
'post_id' => $post->ID,
'status' => 'approve',
'type' => 'comment',
'meta_key' => 'comment-type',
'meta_value' => 'Issue',
));
if($comments)
wp_list_comments(array(
'per_page' => 10, // Allow comment pagination
), $comments);
else
comment_form();
【讨论】:
【参考方案2】:我猜你可以试试这个功能
function wp_filter_comment( $commentdata )
if ( isset( $commentdata['user_ID'] ) )
/**
* Filters the comment author's user ID before it is set.
*
* The first time this filter is evaluated, 'user_ID' is checked
* (for back-compat), followed by the standard 'user_id' value.
*
* @since 1.5.0
*
* @param int $user_ID The comment author's user ID.
*/
$commentdata['user_id'] = apply_filters( 'pre_user_id', $commentdata['user_ID'] );
elseif ( isset( $commentdata['user_id'] ) )
/** This filter is documented in wp-includes/comment.php */
$commentdata['user_id'] = apply_filters( 'pre_user_id', $commentdata['user_id'] );
return $commentdata;
【讨论】:
基本上我需要在自定义类型中使用 meta_key 过滤 cmets以上是关于使用 wp_list_comments() 在 wordpress 中使用元键过滤评论的主要内容,如果未能解决你的问题,请参考以下文章
如何自定义Wordpress comment_form();