A white shirt is the lightest thing most people own, so it sets the top of the contrast in an outfit. Everything else is judged against it.
White sits at the far end of the lightness range, so it separates cleanly from almost anything. That same strength can make it look stark beside a soft palette, and it makes off-whites look yellow or dirty. In photographs and on video, a bright white can also lose its detail, particularly in direct sun.
The shirt does not decide the shoes. The trousers do, so choose the shoe against those. A white shirt with jeans suits white trainers or brown leather. With dark tailoring, dark brown or black is the conventional choice.
Change the level of dress, the weather or the colours you own.
White shirt: a supporting piece, so it needs a clear relationship with whatever anchors the outfit.
Colours here are typical dyed-cloth values, not reference swatches, so navy is the greyed navy of a real suit. Your own garment will differ, and so will the same colour in a different fabric.