Un INSERT declaración puede utilizar las filas devueltas por un SELECT declaración como fuente para insertar datos. Así que construya el SELECT apropiado declaración de posts_temp y authors y luego ya está:
INSERT INTO posts(text, author_id)
SELECT pt.post, a.id
FROM posts_temp pt
JOIN authors a ON a.name = pt.author;