If the domain is based on Zp, then (p-1)+1 = 0, in the domain and in the range, hence the range is also based on Zp.
If the domain is based on Z then write (1/p)×p = 1. If p maps to 0 then the image of 1/p times 0 = 1, which is impossible. Hence Z maps onto Z. The two subfields generated by 1 are the same in the domain and range.
The field homomorphism is a linear transformation between two vector spaces over this common subfield. If the map is not injective then some x, other than 0, maps to 0. We say x is in the kernel of the transformation. Let y be the inverse of x, hence 1 = f(1) = f(xy) = f(x)*f(y) = 0. This is impossible, hence every field homomorphism is an embedding of the domain into the range.
This is certainly not true of ring homomorphisms, even integral domains, as the polynomials over Z map to Z, simply by extracting the constant term.