It’s a totally normal (anxiety inducing/frustrating) stage. Here are some things that helped me out of that stage with mine:
1- Don’t make mealtimes a battle or a show. Sit down together, eat the same thing. If he refuses the meal, calmly tell him “eat what you want and leave what you don’t”. Then don’t mention food again. No bribery, no cajoling. Also don’t make a big thing about it if he does try the meal. The aim is for zero fuss/drama over food.
2- Limit snacks. If he snacking all day then he isn’t hungry enough to try his meals. I’m not saying starve him but if he’s asking for a snack at 11am, say “lunch will be ready soon, if you are still hungry afterwards you can have that snack”.
3- Involve him in cooking and baking as much as possible. It’s baffling but a toddler night refuse a lovely home cooked meal but will try each ingredient raw.
4- Get him to serve the dinner/put it on their own plate. Serve meals “family style”. Allow the toddler to scoop out your portion and their own. It puts them in control. Again, no bribery, no fuss, no pressure.
5 - Try “fun” looking meals. For example, Make the food into a smiley face or fashion a mashed potato volcano with peas/sweetcorn as lava rocks, broccoli trees etc..
6- If he does eat something new, after the meal casually (and only once) mention you are proud he tried something new. Mention how new things can be fun and we’d never know what we like until we try it.
7 - Hidden veg is your friend. Blend it into sauces, hide inside ravioli, pastry etc.
8 - Remember even the least fussy eater on the planet still has food they don’t like. Don’t force feed anything. If he has really tried it and truely doesn’t like it then it’s ok to offer something else.