These Christmas appetizers are perfect for holiday entertaining, from baked brie and cheese boards to festive finger foods and crowd-pleasing dips. These tested recipes will make your Christmas Eve spread unforgettable!
Looking for festive appetizer ideas? When the holidays roll around, it’s easy to get stuck in a rut. So after years of hosting holiday gatherings, I’ve put together my list of top Christmas appetizers to make the festivities a breeze!
These finger foods, dips and spreads are simple to put together and look stunning for Christmas Eve. Each one of these recipes has been tested by a real human family (mine!), and I’ve only included recipes that everyone loves. They’ll set the perfect tone for any party — and how fun is that Christmas tree bread?
My Top Christmas Appetizers
Christmas Tree Pull Apart Bread
This Christmas tree pull apart bread is made of cheese-stuffed dough balls brushed with garlic herb oil and baked until golden. It’s a festive appetizer that brings magic to any holiday gathering!
Baked Brie
A favorite easy Christmas appetizer: Baked Brie! This simple trick is something for everyone's arsenal. The toppings are versatile depending on your preferences, and you can make a beautiful platter with little effort.
Ultimate Cheese Board
Building a stunning cheese board is easier than you think, and it's my go-to move when I need something impressive that doesn't require lots of prep. Mix a few cheeses, cured meats, fresh and dried fruits, nuts, and crackers, and you've got a festive centerpiece perfect for the holidays.
Easy Pinwheels
This pinwheels recipe is great for anytime, but it's ideal for Christmas Eve with the festive red and green! This finger food is full of Italian-style flavors: mozzarella, sundried tomatoes, spinach, and a blend of spices. They look totally stunning on a platter.
Easy Goat Cheese Appetizer
There’s no better easy Christmas appetizer than this warm goat cheese with marmalade! Warm, tangy goat cheese topped with citrus marmalade makes an addictive sweet-savory combination. It's a simple 4-ingredient recipe that bakes in just 10 minutes and pairs with crackers or crusty bread.
Olive Bread
This artisan-style no-knead bread has a crispy crust and soft, chewy interior studded with briny olives. The developed flavor makes it taste like it came from a French bakery, but it's surprisingly simple to make at home.
Spinach Artichoke Dip
This creamy, tangy dip is guaranteed to be scraped clean within minutes of hitting the table. I've tested countless versions, and my recipe with Greek yogurt hits the perfect balance of richness without being heavy.
bakerbynature.com
Christmas Tree Charcuterie Board
What's more fun than a Christmas charcuterie board? This simple appetizer idea is as easy as placing charcuterie board elements in the shape of a Christmas tree. It's fun, eye catching and everyone loves it!
Ultimate Veggie Tray
Step up the standard veggie platter with colorful veggies and homemade dips like my creamy dill dip and homemade hummus. The fresh, colorful vegetables provide a lighter option to balance heavier, cheesy appetizers.
Cranberry Cream Cheese Dip
Here's an easy Christmas appetizer that's always a hit: cranberry cream cheese dip! Make a simple cranberry sauce, then serve it over cream cheese with a topping of green onions and salted pecans. Add crackers and it's a quick appetizer everyone will love!
Christmas Pizza
Who says pizza can't be festive? Shape your dough into a Christmas tree, use pesto for the "branches," add mozzarella "snow," and top with colorful vegetable "ornaments." Kids especially love this creative take on party food.
Easy Cranberry Salsa
Cranberries and salsa aren’t the most likely pair, until you’ve tried this recipe! This fun holiday appetizer is zingy and bright, pairing tart berries with fresh cilantro, onion, and jalapeno for a sweet tart dip. A hint of sugar balances out the tart flavor along with a hint of heat from the jalapeno.
Classic Cheese Ball
This retro party appetizer deserves its comeback: there's a reason it was a staple for decades. My version uses sharp cheddar, cream cheese, green onions, and smoked paprika for a creamy, savory flavor that pairs well with crackers and bread.
Christmas Deviled Eggs
These easy deviled eggs are totally classic for Christmas. These have a twist: Greek yogurt in the filling along with mayo. It adds the perfect flavoring to these eggs without being overly rich! Garnish with dried dill or smoked paprika for a red and green color theme.
Easy Stuffed Mushrooms
These savory bites pack big flavor without requiring you to pre-cook the filling. Simply chop the ingredients, stuff the mushroom caps, and bake until tender with a satisfying crunch in every bite.
www.foodiecrush.com
Antipasto Christmas Wreath Appetizer
Here's a super simple way to a Christmas appetizer: an antipasto Christmas wreath! This quick and easy cheese board shaped like a wreath is sure to add to any festive Christmas Eve potluck or party.
Olive Tapenade
This traditional French spread comes together in just 5 minutes and bursts with bold Mediterranean flavor. The salty, briny combination of olives and capers has everyone gathered around the bowl when served with crunchy crostini.
Sun Dried Tomato Pesto
This vibrant spread has an intense savory-sweet flavor that works well as both a dip or a spread. The tomatoes, herbs, and garlic create a zippy taste that's hard to resist.
Cranberry Orange Bread
This moist, citrusy quick bread is studded with tart cranberries and makes a great sweet addition to any appetizer spread. The sweet orange glaze on top adds the perfect finishing touch.
Easy Candied Pecans
These crunchy, sweet-and-salty nuts are a delicious addition to any Christmas spread. A light coating of cinnamon and sugar gives them just the right amount of sweetness without being overwhelming.
Focaccia Bread
Thick, airy focaccia with its signature olive oil and rosemary topping is ideal for serving alongside dips or as part of a bread basket. The crispy exterior and pillowy interior are so satisfying, and it has an Italian charm that works well with many appetizer recipes.
French Onion Dip
This homemade French Onion Dip is so simple to make at home! The flavor is fresh, savory, rich and tangy: ideal for drowning salty potato chips or crunchy veggies.
Marinated Mozzarella Balls
Here's a fun and easy Christmas appetizer recipe: Marinated Mozzarella Balls! Like many Italian-style appetizers, the genius is in its simplicity. Marinade fresh mozzarella balls in a mix of olive oil, chopped herbs and red pepper flakes, and the flavor is a burst of bold and herbaceous.
Smoked Salmon Bites
This Christmas appetizer that looks stunning and stars that classic combination of smoked salmon, dill, cucumber and cream cheese. The fresh dill, green onion and Dijon mustard make for a rich, zingy pop. A platter of these bites is perfect served next to a cheese board or other dips.
Ultimate Antipasto Platter
This board of Italian appetizers is an explosion of colors and flavors, guaranteed to be the centerpiece of any party. Add traditional antipasti like cheese, meats, marinated vegetables, olives, crackers, breads, and more to a platter and serve with small plates to let your guests get to snacking.
Cranberry Goat Cheese
This cranberry goat cheese is a quick and easy Christmas Eve appetizer perfect for parties, pairing the flavors of cranberry, pistachio and fresh rosemary with the tangy cheese. Drizzle honey over the top before serving for a sweet pop. It’s fast to put together and ideal for snack tables, scooped up with crackers or crostini.
Smoked Salmon Dip
This quick and creamy salmon dip has a bit of a retro vibe, which makes it all the more endearing. It’s chock full of rich flavor: hearty cream cheese, tangy yogurt, punchy Dijon, and that intensely smoky flavor that only fresh smoked salmon brings.
Easy Fruit Dip
Here’s a go-to recipe for Christmas parties: this easy Fruit Dip! It's only 3 ingredients, takes 2 minutes, and tastes beautifully natural. It's simply sweet, using a base of Greek yogurt keeps it healthy and natural.
Easy Stuffed Dates
Here's an easy finger food: goat cheese stuffed dates! Quick to make, the sweet and savory combo keeps everyone coming back for more. Pair the sweet caramel chewiness of Medjool dates with tangy, fluffy goat cheese, and top them with a dusting of pistachios and a sprinkle of smoked paprika.
Christmas Punch
Need a great punch recipe for the holidays? This Christmas Punch is fruity and delicious, with a little sparkle from ginger ale. You can make it with rum for a punch with alcohol, or omit it for non alcoholic. Garnish with sliced citrus, rosemary branches and cranberries.
Marinated Mushrooms
Caprese Flatbread
What's better than that classic combination of tomatoes, basil, and mozzarella? This flatbread pizza that uses naan bread as a base: or any type of flatbread you can find. Layer it up with mozzarella, tomatoes and fresh basil, and a drizzle of balsamic glaze.
Whipped Goat Cheese
This Christmas appetizer takes just 5 minutes to make, and if you love the earthy, savory creaminess of goat cheese, you’ll park yourself right next to the bowl. Flavored with fresh herbs and garlic, this smooth spread is ideal for dipping crackers or crostini.
Antipasto Skewers
These antipasto skewers are everything that’s great about an antipasto platter, in skewer form. Thread olives, mozzarella, marinated artichokes and tortellini pasta onto a skewer, and it’s easily devoured by eaters of all ages.
Shrimp Cocktail
Shrimp cocktail is a classic Christmas appetizer recipe! While it was popularized in the 1960’s, it truly never goes out of style. This recipe stars perfectly tender shrimp and a zesty homemade cocktail sauce that will have everyone begging for the recipe.
Cold Spinach Dip
This spinach dip is served cold, perfect for dipping pita chips or serving in a bread bowl. The recipe is a little lighter than most, relying on Greek yogurt for much of the creaminess. Because it’s not baked, it’s quick to put together in just 10 minutes.
Baked Goat Cheese Dip
There’s something about the combination of sweet, garlicky fire roasted tomato sauce and the creamy, tangy chevre. Scoop it up with crusty bread slices and it tastes just like pizza, only better. It’s perfect for parties, especially Christmas!
Spiced Nuts
This simple idea recipe a crunchy, candy-like coating to the exterior of nuts. They’re spiced with cinnamon, chili powder and bit of cayenne for an intriguing mix of sweet, savory and spicy.
Marinated Olives
These marinated olives will make an olive lover out of anyone at the party! Using the right olives here results in smooth, rich flavor: not briny or overly salty. The garlic, lemon and herbs take it over the top.
Quick Veggie Dip
Veggie platters always graced my childhood Christmas appetizer table, and here's my go-to veggie dip recipe! It’s ultra creamy and savory, and simple to whip up with just the right combination of spices. It's a snack everyone will love and it comes together in just 5 minutes.
Tips for Planning a Christmas Appetizer Menu
When planning a menu, think about contrasts. Include at least one cold option (like a cheese board or dips), one warm dish (like baked brie or spinach artichoke dip), and a mix of veggie-based items to offset the richer appetizers.
Many of the dips, cheese balls, marinated items, and doughs can be prepared a few days in advance, which is helpful when entertaining.
For special diets, I’ve found that offering several vegetarian options, one or two gluten-free choices, and clearly labeled ingredients is helpful!
How to Keep Appetizers Fresh During a Party
For cold appetizers, you can prep ingredients and keep them refrigerated, then plate them in batches throughout the evening. This keeps everything looking fresh rather than having items sit out and look tired after an hour.
Keep warm appetizers in a low oven (around 200°F) or use a slow cooker set to warm. Then you can refresh the platters every 30-45 minutes, rather than letting everything sit for hours.
40 Easy Christmas Appetizers
This Christmas tree pull apart bread is made of cheese-stuffed dough balls brushed with garlic herb oil and baked until golden. It’s a festive appetizer that brings magic to any holiday gathering!
- Prep Time: 45 minutes
- Rest Time: 1 Hour 15 Minutes
- Cook Time: 15 minutes
- Total Time: 2 hours 15 minutes
- Yield: 8
- Category: Appetizer
- Method: Baked
- Cuisine: Appetizer
- Diet: Vegetarian
Ingredients
For the dough:
- 490 grams all purpose flour (3 ½ cups)
- 2 teaspoons kosher salt
- 2 teaspoons instant or active dry yeast
- 315 grams warm water (1 ⅓ cups)
- 2 tablespoons olive oil
For the pull apart bread:
- 8 string cheese mozzarella sticks (8 oz)
- 2 tablespoons olive oil
- 2 garlic cloves, grated
- 1 teaspoon Italian Seasoning
- ½ cup grated parmesan
- Fresh rosemary
- 32 dough balls
Instructions
- Combine the flour, salt, and yeast in a bowl or the bowl of a stand mixer. Stir to combine. Add the water and olive oil and stir until a shaggy dough forms. Turn the dough out onto a floured surface.
- Knead the dough by pushing with the base of your palm, then reforming it into a ball. Continue kneading for 8 minutes until the dough feels pillowy and has a smooth, stretchy exterior. If the dough is very sticky, add a small amount of flour while kneading. Alternatively, attach the dough hook to a stand mixer and start the mixer on medium-low speed, then allow the mixer to knead for 8 minutes.
- Using floured hands, gently shape the dough into a boule (ball shape) by folding the dough under itself. Return to the bowl and cover with a damp towel and allow them to rise at room temperature until doubled in size, about 45 minutes to 1 hour.
- Preheat the oven to 425°F. Prepare a baking sheet with parchment paper.
- Divide the bread into 32 equal pieces, using a scale and calculator (weigh the dough in grams, then divide it by 32; the small balls are typically around 26 grams*). Take the first piece of dough and flatten it slightly. Place a piece of cheese in the center, then form a ball with your palms, creating a smooth top and a seam at the bottom. Place the ball into a Christmas tree shape on the baking sheet and repeat with the remaining dough and cheese. Cover with a towel and let rest for 15 minutes.
- In a small saucepan, warm the olive oil over medium heat. Add the grated garlic and Italian seasoning and stir until fragrant, about 1 minute. Remove from heat. Brush the garlic herb oil onto the dough balls, then sprinkle with the Parmesan cheese. Bake for 14 to 17 minutes until golden brown. Top with fresh rosemary. Serve warm.
Notes
*Try to be precise about this for best results. Try not to overwork the dough, but you can cut it multiple times to make even pieces.
Substitutes: You can substitute 1 pound pizza dough for the homemade dough. Use the same dough dividing techniques.
Storage notes: Store leftover bread in an airtight container at room temperature for 2 days or refrigerated up to 4 days. Reheat on a baking sheet at 350°F for 8 to 10 minutes.
Make ahead notes: Arrange the dough balls in the tree formation, cover tightly with plastic wrap, and refrigerate overnight. The next day, allow to sit at room temperature 20 to 30 minutes, brush with the garlic oil and bake.
window.trCommon={„minRating”:6,”ajaxurl”:”https:\/\/www.acouplecooks.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:””,”postId”:134627};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};
document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if („wakeLock” in navigator && „request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = document.querySelectorAll(this.cookModeSelector);
if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input(type=”checkbox”)’).addEventListener(„change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = „none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input(type=”checkbox”)’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(„screen”);
this.wakeLock.addEventListener(„release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(function(callback) {
if (document.readyState !== „loading”) {
callback();
} else {
document.addEventListener(„DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );
setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}
this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();
for ( const key in data ) {
formData.append( key, data(key) );
}
return formData;
},
};
window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons (data-rating)’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating(value=”‘ + rating + ‘”)’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}
if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );
// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );
if ( ! data.count ) {
return;
}
const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}
if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}
const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}
const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘(data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”)’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts(1) ? parts(1) : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘(data-tr-checked)’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘(data-tr-clip)’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}
const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘(name=comment)’ );
if ( ! commentBox || commentBox.value ) {
return;
}
// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘(name=author)’ ).value = data.comment.name;
commentForm.querySelector( ‘(name=email)’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘(data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”)’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘(data-tr-clip)’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘(data-tr-checked)’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘(data-rating)’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating(value=”‘ + tastyRecipesRating + ‘”)’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};
(function(callback) {
if (document.readyState !== „loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
More Christmas Recipe Ideas
- 60 Great Christmas Recipes
- 35 Christmas Cocktails & Drinks
- 40 Christmas Side Dishes
- 40 Christmas Breakfast Ideas
- 30 Festive Christmas Desserts

50 Great Christmas Recipes

35 Fun Christmas Cocktails and Drinks

30 Festive Christmas Breakfast Ideas


