二级栏目聚合需要获取父栏目及其所有子栏目的文章。通过pid字段查找子栏目id列表。
$ids = [(int) $pid];
foreach ($GLOBALS['categories'] as $c) {
if ((int) $c['pid'] === (int) $pid)
$ids[] = (int) $c['id'];
}
$now = time();
$cond = 'deleted=0 AND (publish_at=0 OR publish_at<='.$now.')'
. ' AND (offline_at=0 OR offline_at>'.$now.')';
$list = get_articles($cond.' AND cat_id IN ('.implode(',', $ids).')', [], 10);