ADVERTISEMENT

It's cruel to be loved - A review of 'Wuthering Heights' (2026)

Published Feb 11, 2026 08:15 am
Inspired by the greatest love story of all time’ is how the “Wuthering Heights” trailer branded this film adaptation by Director Emerald Fennell. And to set matters right from the outset, it’s hard to watch this film and then call this the greatest love story, given there’s so much false pride, cruelty, revenge, deceit, unhealthy obsession, and BDSM perversity scattered all over the narrative. And yes, the inverted commas indicate this is Fennell’s own version.
Margot Robbie and Jacob Elordi
Margot Robbie and Jacob Elordi
Perhaps we are swept away by the wuthering location and setting (did you know the word ‘wuthering’ refers to being ,characterized by strong, gusty winds), but that’s still no excuse for labelling this the Love Story of all love stories. Or perhaps we’re referring to the number of times the 19t- century Emily Brontë novel has been brought to film; and how Heathcliff has become a symbol for the dark, moody, romantic hero.
Fennell directed Saltburn and Promising Young Woman, so you know she will come up with a lush, visually appealing film and always lean toward racy, shocking, and graphic. On these counts, you can’t fault her here. It’s done all so matter-of-factly that, given this is a period drama, you’ll want to applaud her for being daring and ripping apart the niceties and prim, proper conventions of the era. It’s still period, but with a modern, gutsy attitude, and a Charli XCX soundtrack.
Of course, the story revolves around the relationship between Cathy Earnshaw (Margot Robbie) and Heathcliff (Jacob Elordi). In the first part of the film, we are treated to their origin story: how Cathy’s father and widower (Martin Clunes) bought the boy and brought him home as an added companion for his daughter, who actually refers to the boy as her new pet. Nelly Dean (Hong Chau) is also introduced, a girl of proper upbringing but from a disgraced family, taken and acquired by Mr. Earnshaw as a tutor for Cathy. As in the book, Nelly will play a vital role in the story's tragic elements.
As adults, we meet the likes of Edgar Linton (Shazad Latif) and his sister Isabella (Alison Oliver). Other prominent figures from the source material, such as Cathy’s brother, are nowhere to be seen. And forget the second half of the novel, which dealt with our main characters' children. They’ve been erased from this adaptation.
Always gorgeous to watch, this film is a visual spectacle and makes us think of an epic movie. But I do have to admit that, unlike the Cassie of Promising Young Female, where we sympathized with her crazed revenge fantasy, there isn’t all that much to like with this Cathy and Heathcliff. Sure, they smoulder and are physically attractive, but this Cathy is also vain, calculating, and petulant, and this Heathcliff is proud and ready to demean others in the name of his petty revenge, and wants to hurt Cathy. So how are we genuinely going to like these two?
When the tragedy strikes and the film comes to a close, we’re supposed to be moved and feel the emotional weight of our two protagonists, but I watched impassively, and I knew then that something had misfired. The film opens in cinemas this Wednesday, Feb. 11.
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.