Preheat the oven to 350°F and line a 9×5-inch loaf pan with parchment paper.
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
In a large mixing bowl, add the sugar and orange zest, and rub the orange zest into the sugar with your fingers until fragrant. Whisk in the orange juice, melted butter, eggs, and vanilla until smooth.
Gently fold in the dry ingredients until just combined, being careful not to overmix.
Fold in the cranberries and walnuts.
Pour the batter into the prepared loaf pan. Smooth the top.
Bake for 55–60 minutes, or until a toothpick inserted into the center comes out clean. If browning too quickly, tent with foil during the last 10 minutes.
Cool in the pan for 10 minutes, then transfer to a wire rack to cool completely before slicing.
To make the glaze, whisk together the powdered sugar and orange juice until smooth. Add an extra tablespoon of orange juice if needed for a more runny consistency. Drizzle over the cooled bread for extra sweetness.