Wordpress con el sistema de subscriptores sirve para ésto, tenés un par de plugins que permiten que sólo usuarios registrados (y autorizados) puedan ver ciertas entradas. O también podés
proteger con contraseña las entradas, entonces a cada clase les das la contraseña para las entradas sobre la materia que les interese.
Además también te va a servir para poner a los maestros de editores (no admins, para que no arruinen nada tocando código o plugins). Lo más limpio sería
hacer un dominio principal de la escuela y un subdominio por cada materia, de modo que tuvieses la página principal en escuela.com y desde ahí linkeas a matematica.escuela.com, lengua.escuela.com, ingles.escuela.com (o también podés organizarlo por cursos: 1a.escuela.com, 1b.escuela.com, 2a.escuela.com, etc).
Podés usar una instalación distinta de wordpress para cada dominio, o instalarlo sólo una vez y usar la función
multisite, que te permite con una sola instalación controlar todos los blogs. De paso a cada materia (o curso) le ponés un fondo distinto, información específica en la sidebar para los estudiantes de ese curso/materia, etc.