使用 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();

如何自定义 Wordpress comment_form();

如何在 VC++ 中使用 _W64 和 __w64?

如何去掉wordpress评论功能自动生成的<p>标签?

使用连续 \d 和 \w 时了解正则表达式的行为 [重复]

在 C# 中使用正则表达式解析电子邮件