按自定义评论元查询和排序评论

时间:2011-12-20 作者:ximi

我为我正在开发的wordpress网站的帖子和评论添加了一个基本的“收藏夹/推荐”功能。

我将评论“赞”的总数存储在自定义评论元字段(update\\u comment\\u meta)中。现在,我想根据这个自定义元键和相应的值来查询和排序评论,以便显示流行的评论。

理想情况下,我希望能够使用类似于WP\\u查询的参数“meta\\u key”和“order\\u by=meta\\u value\\u num”,但显然注释查询不支持这些参数。

我必须对数据库使用自定义的书面查询吗?如果是这样的话,有谁能给我一个初步的建议,告诉我如何做到这一点?

1 个回复
SO网友:t31os

不幸的是,用于查询评论的适用WordPress函数不支持它,这主要是因为(我觉得)没有足够的人(或任何人)要求它。

我想在这里重点介绍几个核心文件,以帮助理解这个问题。

首先comments-template.php, 这个comment_template 函数,该函数用于查询注释,然后将其添加到WP_Query 对象

请参见第882行,在查询发生或更改之前,没有任何筛选器或操作来拦截查询comments.php 以及get_comments 函数,这次您将发现不支持自定义排序,例如元排序。

参见第262行array_intersect 仅查找匹配项,如果它不在您在那里看到的值数组中,则它不被视为有效顺序comments_array (您将在我链接到的第892行的第一个文件中看到这个钩子)。

您可以循环访问已获取的注释数组,并构建一个基于元数据排序的新数组(尽管如果您希望尽可能高效,可能需要自定义查询来获取元数据)。

如果需要的话,我可以稍后添加一个数组变戏法的示例。

结束

相关推荐

Value of Query string

我怎样才能得到total 来自以下URL的值http://tradephonein.com/checkout-swap/?total=$18.00&broken=No&water=%20No&power=Yes,%20battery%20included&lcd=No&charger=&manual=Owner%20Manual&box=&other=我有一个字符串查询,你会看到total=$18.00, 我的问题是,我如何才能得到这个值,因