Asked by: Daniel J Buhs, US
No, not all planets have magnetic fields. The four gas giants have extremely strong magnetic fields, Earth has a moderately strong magnetic field, Mercury has an extremely weak field, but Venus and Mars have almost no measurable fields.
Planetary magnetic fields are formed by the interaction between the convection of interior conducting material (molten rock and metal) and the planet’s own rotation. Mercury’s field is weak because it rotates so slowly. Venus doesn’t have an appreciable field because there appears to be little convection in its molten interior. Mars doesn’t have an appreciable field – although it did in the past – because its interior has solidified.