I heard that we get our guardian angels at baptism. Is this true, and does it mean that the babies of non-Christians do not have guardian angels?
The idea that we get our guardian angels at baptism is a speculation, not a teaching of the Church. The common opinion among Catholic theologians is that all people, regardless of whether they are baptized, have guardian angels at least from the time of their birth (see Ludwig Ott, Fundamentals of Catholic Dogma [Rockford: TAN, 1974], 120); some have suggested that prior to birth babies are taken care of by their mothers’ guardian angels.
The view that everyone has a guardian angel seems well founded in Scripture. In Matthew 18:10 Jesus states, “See that you do not despise one of these little ones; for I tell you that in heaven their angels always behold the face of my Father who is in heaven.” He said this before the Crucifixion and was speaking about Jewish children. It would therefore seem that non-Christian, not just Christian (baptized) children have guardian angels.
Notice that Jesus says their angels always behold the face of his Father. This is not merely a declaration that they continually stand in the presence of God, but an affirmation that they have continual access to the Father. If one of their wards is in trouble, they can serve as the child’s advocate before God.
The view that all people have guardian angels is found in the Church Fathers, notably in Basil and Jerome, and it is also the view of Thomas Aquinas (Summa Theologiae I:113:4).