ADVERTISEMENT

Taking the 'S' out of scares: A review of 'We Have A Ghost'

Published Feb 26, 2023 08:59 pm
A scene from 'We Have A Ghost'

On Netflix is a new film from Christopher Landon, who has carved out a niche of horror films that mix humor and sentiment along with the jump scares - he’s responsible for Happy Death Day, Scout’s Guide to the Zombie Apocalypse, and most recently, the terrific body-swap film, Freaky. We Have A Ghost is Landon’s new contribution to his sub-genre, and it’s one that really places an emphasis on sympathetic, caring characters - with the care’s outscoring the scare’s that we’ll remember this film for. And I don’t mean to say that’s necessarily a bad thing. 

The film starts off in classic haunted house fashion with a fast prologue, then the main story casting off with a new family that’s looking into a possibility of acquiring the long abandoned house. Father-in-charge Frank, but seemingly discharging most of the time, is portrayed by Anthony Mackie. And the more interesting family member is younger son, Kevin, played by Jahi Di’Allo Winston. David Harbour plays the ‘ghost’ Ernest. And there are major cameos contributed by Jennifer Coolidge as a TV medium, and stand-up comedian Tig Notaro as Dr. Leslie Monroe. Erica Ash plays the Mom, and Niles Fitch is the older brother.

At the core of the film is the relationship that emerges between younger son Kevin and the ghost, Ernest. Isabella Russo as Joy Yoshino, the Japanese-American next door neighbor and accomplice to Kevin, offers a ‘love interest’ that seems off and just too misguided to really merit any plausibility. And this would be connected to the acting of Winston as Kevin and his attack on the role. Watch this film, and you’ll understand what I mean, as no spoilers here.

It’s the Kevin-Ernest bonding that propels this film, and gives Landon his opportunity to bring a lot of heart into this film. Characters we care about, and character terms with a lot of caring on their mind and hearts turn this film into a light, enjoyable romp. But it does mean that the jump scares and more tense moments that characterized Landon’s other films take a back seat to all the caring and sharing.

Kevin truly cares about Ernest and why he’s in this trauma and can’t just slip onto the other side, while Ernest cares about the daughter he left behind on account of his untimely death. Frank is a father who knows he’s been flailing at fatherhood and foundering at providing for his family. A ghost in his house is a wonderful opportunity to use social media and monetize the situation. At times obsessed with this drive to finally succeed, he does have something of an interesting arc in the course of the film.

If I would criticize the film, it would be how it tries to be too many things all at the same time. It has in heart in the right place and there are enough bright spots; but it does go on for far too long because it has so many loose ends to tie up. 

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.