Creo que necesitarías algo como:
AND us.first_post_created_at > NOW() - INTERVAL '7 DAYS'
(documentación de PostgreSQL sobre fechas y horas)
Para excluir los MP, necesitas hacer una unión con la tabla topics (siguiendo la clave foránea posts.topic_id) y verificar la columna archetype. Agrega esto antes de la cláusula WHERE:
JOIN topics t ON p.topic_id = t.id
…y esto antes de ORDER BY:
AND t.archetype = 'regular'