不幸的是,用于查询评论的适用WordPress函数不支持它,这主要是因为(我觉得)没有足够的人(或任何人)要求它。
我想在这里重点介绍几个核心文件,以帮助理解这个问题。
首先comments-template.php, 这个comment_template
函数,该函数用于查询注释,然后将其添加到WP_Query
对象
请参见第882行,在查询发生或更改之前,没有任何筛选器或操作来拦截查询下一步comments.php 以及get_comments
函数,这次您将发现不支持自定义排序,例如元排序。
参见第262行array_intersect
仅查找匹配项,如果它不在您在那里看到的值数组中,则它不被视为有效顺序注释模板函数中有一个过滤器,但它将传递调用的整个注释数组comments_array
(您将在我链接到的第892行的第一个文件中看到这个钩子)。
您可以循环访问已获取的注释数组,并构建一个基于元数据排序的新数组(尽管如果您希望尽可能高效,可能需要自定义查询来获取元数据)。
如果需要的话,我可以稍后添加一个数组变戏法的示例。