All RecipesDad Bakes CookiesDessert

Hummingbird Cake

1 Mins read

This Hummingbird Cake post was originally published on May 14, 2012. It’s been updated and refreshed with new photo.

This weekend, I attempted to make a Hummingbird Cake. It has pineapple, bananas, walnuts, and lots of sugar! I first had hummingbird cake from Magnolia at work. I fell in love.

Hummingbird Cake
Hummingbird Cake

Since then, I’ve wanted to try to make one. So what better time to try, than for Mother’s Day! After making a fabulous breakfast, I went back into the kitchen to try to make this cake before heading down to the shore for more fun.

Hummingbird Cake

Hummingbird Cake for the start of summer, carrot cake at the end.

Sometimes hummingbird cake uses raisins. Nope, nope, nope. Sorry, that’s one of the few things I will never use in a cake. The easiest way to make this cake is to use canned pineapple. When I first published this post, I used fresh pineapple. It was a mess. In this one, I used canned pineapple and it was so easy. I saved four bananas for this. However, one mysteriously disappeared so I ended up with one and half cups of bananas. I liked this better since it didn’t taste like a banana bread and left room for the pineapple to come through. I updated that in the recipe below. However if you want more banana punch, then add in all two cups.

Hummingbird Cake

The Frosting

As for the frosting, it’s very cream cheesy and will melt easily. Make sure the cake is cool before you frost and the air conditioning is on. Otherwise it will start to fall off. Start adding the confectioner’s sugar gradually until you get a desired stiffness. However, it won’t be stiff like the Elderflower Cake buttercream, but it will be close.

Hummingbird Cake

This is a great summer dessert. I’m not a fan of fruit in dessert. However, this hummingbird cake is my exception. Let me know what you think!

Hummingbird Cake
Hummingbird Cake


Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Hummingbird Cake

Hummingbird Cake

5 Stars 4 Stars 3 Stars 2 Stars 1 Star
No reviews


  • Total Time:
    2hrs


  • Yield:
    8



Ingredients

  • For the cake:
    • 3 cups all-purpose flour
    • 1 teaspoon baking soda
    • 1 teaspoon salt
    • 1 1/2 cups canola oil
    • 3 eggs
    • 2 cups white sugar
    • 1 (8 ounce) can crushed pineapple, drained, or one cup or mashed, fresh pineapple
    • 1 /12-2 cups mashed bananas (about 3-4 bananas)
    • 1 cup chopped walnuts
  • For the frosting:
    • 1 (8 oz) package cream cheese, softened
    • 1 stick (1/2 cup) of butter, softened
    • 2 1/2-3 cups confectioner’s sugar
    • 1 teaspoon vanilla extract


    • Instructions

        1. Preheat oven to 350 degrees F.
        2. Grease and flour 3, 5 inch (or 2, 9 inch) cake pans.
        3. Mix the flour, baking soda and salt in a small bowl. Set aside.
        4. In a large bowl, combine the oil, eggs, sugar, pineapple, bananas and nuts.
        5. Slowly add flour mixture and mix together by hand.
        6. Pour batter into prepared pans and bake for about an 30-60 mins (depending on the size of the pan) or until a toothpick comes out clean. Remove from oven and allow them to cool before removing them to the racks.
        7. Prepare the frosting by whipping together the cream cheese, butter, sugar and vanilla until smooth. Start with 2 cups of confectioner’s sugar and continue to add more until desired texture.
        8. After the cake has cooled, frost it. Garnish with more nuts on top.

        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() );

        (function(){ document.querySelectorAll(‘[data-tr-ingredient-checkbox]’).forEach(function(el) { var input = el.querySelector(‘.tr-ingredient-checkbox-container input[type=”checkbox”]’); if ( ! input ) { return; } if (input.checked) { el.dataset.trIngredientCheckbox = ‘checked’; } el.addEventListener(‘click’, function(event) { if ( ‘A’ === event.target.nodeName || ‘INPUT’ === event.target.nodeName || ‘LABEL’ === event.target.nodeName ) { return; } input.click(); }); input.addEventListener(‘change’, function() { el.dataset.trIngredientCheckbox = input.checked ? ‘checked’ : ”; }); }); }());

        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 <= 0 ) { return; } for ( const rating of ratings ) { rating.addEventListener( ‘click’, event => { 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 < this.minRating ) { commentTextarea.setAttribute( ‘required’, ” ); return; } commentTextarea.removeAttribute( ‘required’ ); }, maybeSendRating( rating, element ) { if ( this.savingRating === rating ) { return; } this.savingRating = rating; window.TastyRecipes.staticTooltip.init( element ); const recipeCardElement = element.closest( ‘.tasty-recipes’ ); if ( ! recipeCardElement ) { window.TastyRecipes.staticTooltip.destroy(); return; } window.TastyRecipes.ajax.sendPostRequest( window.trCommon.ajaxurl, { action: ‘tasty_recipes_save_rating’, rating, nonce: window.trCommon.ratingNonce, post_id: window.trCommon.postId, recipe_id: recipeCardElement.dataset.trId, }, ( response ) => { 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 ); });

        Hummingbird Cake
        633 posts

        About author
        Brian is the head of content and co-founder of Lilies and Loafers. He’s Fatima's husband and dad to two adorable boys. In his very little free time, Brian enjoys baking with his kids, kicking back and listening to scripted podcasts, and building complex wooden train layouts.
        Articles
        You may also like
        All RecipesCocktailsMargaritas

        Celebrate National Margarita Day with the Best Margarita Recipe

        3 Mins read
        All RecipesLunch and Dinner

        Homemade Meatball Subs with the Best Red Sauce

        1 hour Cook
        All RecipesMocktails

        Relaxing Lavender Lemonade Mocktail Recipe (Perfect for Unwinding)

        3 Mins read
        Take the edge off heading into the New Year with a lavender lemonade mocktail. Yes, that’s right, a MOCKTAIL! We made this the other night and we were so relaxed, we passed out as soon as our heads hit the pillow. It’s a perfect mocktail to make when you want to chill out.

        1 Comment

        Leave a Reply

        Your email address will not be published. Required fields are marked *

        Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star

        This site uses Akismet to reduce spam. Learn how your comment data is processed.