您提到的过滤器修改get_comments
函数在提取后执行。但是,您也可以解析此函数的参数。您可以查看哪些参数here. 正如您所看到的,您可以将结果限制为某个作者的评论,或将其排除在外。
现在,这里是你的问题变得有点粗略的地方。不清楚您是只想显示当前作者的评论,还是希望显示除非当前作者之外的所有评论(意思是:当前作者的评论和非作者的人的评论)。
第一个非常简单。获取当前作者并相应限制结果。
$current_user_id = get_the_author_meta(\'ID\');
if (!empty($current_user_id))
$current_comments = get_comments (array(\'post_id\' => get_the_ID(), \'post_author__in\' => array($current_user_id)));
第二个稍微复杂一些。你必须
fetch an array of all authors, 除了来自的当前用户和“获取所有评论”(get all comments),不包括所有其他注册作者。
$current_user_id = get_the_author_meta(\'ID\');
if (!empty($current_user_id)) {
$non_current_user_ids = get_users (array (\'exclude\' => array($current_user_id)));
$current_comments = get_comments (array(\'post_id\' => get_the_ID(), \'post_author__not_in\' => array($current_user_id)));
}
Note: 我没有测试代码。这里给出它作为概念证明。
您的问题不包括用户未登录时发生的情况。他能看到所有评论吗,还是只看到非注册用户的评论?