【发布时间】:2018-04-24 09:48:20
【问题描述】:
我正在开发我的简单 wordpress 插件。该插件应根据书面帖子的数量对所有用户进行排名,然后将其显示在 html 表上。一切正常,除了排序。您知道如何按Number_of_posts 值对这个数组进行排序吗?
for($id = 1;$id<=$total_users;$id++){
$ar = $wpdb->get_results("SELECT wp_users.ID, wp_users.display_name,
COUNT(wp_posts.post_author) AS 'Number_of_posts'
FROM wp_users
INNER JOIN wp_posts ON wp_users.ID = wp_posts.post_author
WHERE wp_posts.post_type = 'post'
AND wp_users.ID = $id
AND wp_posts.post_status = 'publish'" ,
ARRAY_A);
function sort($a, $b) {
return $a['Number_of_posts'] - $b['Number_of_posts'];
}
usort($ar, 'sort');
foreach ($ar as $x){
echo'<tr>';
echo'<td>'. $x['ID']."</td>";
echo'<td>'. $x['display_name'].'</td>';
echo'<td>'. $x['Number_of_posts'].'</td>';
echo'</tr>';
}
}
echo '</table>';
echo '<br>';
【问题讨论】:
-
在你的问题中添加
var_dump($ar);的输出。(不是整个输出,只有2-3个索引数据) -
试试这个解决方案:stackoverflow.com/a/10000042/5938111。如果您解决了问题,请告诉我。
-
不起作用:致命错误:无法重新声明 cmp()(之前已声明
标签: php arrays wordpress sorting plugins