Preheat the oven to 350°F (175°C). Grease a 9x5-inch loaf pan or line it with parchment paper.
In a large bowl, whisk together flour, baking powder, baking soda, salt, and cinnamon.
In a medium bowl, whisk eggs and sugar until combined. Whisk in melted butter and vanilla, then whisk in the milk and orange zest.
Pour the wet mixture into the dry ingredients and stir gently just until no dry streaks remain. Do not overmix.
Fold in cranberries and walnuts until evenly distributed.
Scrape the batter into the prepared loaf pan and smooth the top. Tap the pan lightly on the counter to release air bubbles.
Bake 55–65 minutes, until the top is golden and a toothpick inserted in the center comes out clean or with a few moist crumbs.
Cool in the pan for 10 minutes, then transfer to a wire rack to cool at least 5 minutes more before slicing.