如何按子帖子计数对帖子列表进行排序?

时间:2014-01-20 作者:user24475

我有两种自定义的帖子类型,叫做问答。问题列表包括一个自定义列,其中显示每个问题的答案计数。我需要能够根据答案的数量对列表进行排序。

此查询通过MySQL shell工作,并提供正确的输出:

SELECT a.ID, a.post_title, COUNT(b.ID) AS child_count
FROM wp_posts a
LEFT JOIN wp_posts b
ON a.ID = b.post_parent AND b.post_status = \'publish\' AND b.post_type = \'answer\'
WHERE a.post_type = \'question\' AND a.post_status = \'publish\'
GROUP BY a.ID
ORDER BY child_count DESC
迄今为止我的代码:

add_filter( \'pre_get_posts\', \'column_orderby\' );
function column_orderby( $query ) {
  if ( ! is_admin() )
    return;
  $orderby = $query->get( \'orderby\' );
  if ( \'qa-answers\' == $orderby ) {
    global $wpdb;
    $query->set( \'posts_join\', "LEFT JOIN wp_posts b ON a.ID = b.post_parent AND b.post_status = \'publish\'" );
    $query->set( \'posts_groupby\', "{$wpdb->posts}.ID" );
  }
}
如何才能COUNT(b.ID) AS child_count 子句,以便我可以在$query->set(\'orderby\', \'child_count\'); 陈述

1 个回复
SO网友:user24475

根据我随后对wp includes/query的审查。php,我所尝试的是根本不可能的。这是因为查询变量只能修改为预定义的值集。据我所知,您不能任意修改查询。

结束

相关推荐

Sort categories by meta value

如何制作一个类别列表,每个类别中有4篇最后的帖子,其中每个类别都按meta\\u值排序。例如,不按meta\\u值排序的模板是http://pastebin.com/AeH6vx9b它仅显示父类别。几天来,我在搜索与类别相关的额外字段,但找不到可行的内容。This is my best search result. 这跟我有什么关系?我不明白。有可能做我想做的事吗?