Photo/ver.com
Smelly shoes are a social nightmare. Sometimes it's causes by fungal infections like athlete's foot. The sweat from the feet get to the shoes and create the bad odour. If it's caused by any form of disease, seek medical attention. Let's deal with stinking shoes due to unhygiene.
The first step is ensuring you have sufficient pairs of shoes. If you're feet are too sweaty, your shoes will stink fast. Especially if you wear them for prolonged hours or in areas with too much heat.
After getting home and taking off your shoes, put them away and put on a different pair the following day. Don't just wipe the dirty pair, wash it for maximum cleanliness (unless the make of the shoe doesn't allow).
If the shoes and dress code allow, put on a pair of socks. When your feet sweat, it helps prevent the sweat from reaching the shoes fast. Have sufficient pairs of socks too.
You don't always have to put on closed shoes or socks. Let your feet breathe once in a while especially when you're indoors.