Totally a phase that hits most toddlers around that age - he's figuring out control and testing boundaries, which means rejecting stuff is actually him being developmentally on track, even if it's frustrating. The thing is, you can't force him to like things, but you can make it way less of a battle by staying patient with exposure. Kids often need to see a food multiple times before they'll touch it, so having chicken or veggies on your own plate while he eats his pasta or fruit takes the pressure off him and lets curiosity work naturally.
Here's what actually made a difference for me with my nephew: involve him in *choosing* what gets on the plate, even if the options are limited. Instead of "eat your broccoli," it's "do you want broccoli or carrots?" That tiny bit of agency makes kids way more likely to at least try something. And here's the practical hack nobody talks about - let him dip things. Pasta sauce, yogurt dip, even just water in a tiny bowl. It sounds silly, but the act of dipping transforms a food into a game and somehow makes rejected items feel new and less threatening.
The other piece: keep mealtimes calm and don't make a show of his rejection. Eat your own varied food, praise him when he tries something without expecting him to finish it, and genuinely don't worry if some meals are just pasta and fruit. Kids won't develop scurvy from a few months of selective eating, and the pressure-free approach usually works faster than negotiating or bribing. He'll broaden his diet once he feels like it's his idea.