{"id":209,"date":"2026-08-14T14:21:41","date_gmt":"2026-08-14T18:21:41","guid":{"rendered":"https:\/\/realrockrevival.com\/?page_id=209"},"modified":"2026-08-14T15:13:19","modified_gmt":"2026-08-14T19:13:19","slug":"news","status":"publish","type":"page","link":"https:\/\/realrockrevival.com\/index.php\/news\/","title":{"rendered":"News"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"209\" class=\"elementor elementor-209\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-27a08a7 e-flex e-con-boxed e-con e-parent\" data-id=\"27a08a7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e84634a elementor-widget elementor-widget-html\" data-id=\"e84634a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =========================================\n   REAL ROCK REVIVAL - ROCK NEWS\n   ========================================= *\/\n\n.rrr-news-page {\n    width: 100%;\n    max-width: 1400px;\n    margin: 0 auto;\n    padding: 45px 24px 70px;\n    font-family: Arial, sans-serif;\n    color: #ffffff;\n}\n\n.rrr-news-heading {\n    text-align: center;\n    margin-bottom: 40px;\n}\n\n.rrr-news-kicker {\n    color: #e11d2e;\n    font-size: 14px;\n    font-weight: 800;\n    letter-spacing: 4px;\n    text-transform: uppercase;\n    margin-bottom: 8px;\n}\n\n.rrr-news-heading h1 {\n    margin: 0;\n    font-size: clamp(42px, 6vw, 76px);\n    line-height: 1;\n    font-weight: 900;\n    letter-spacing: -2px;\n    text-transform: uppercase;\n}\n\n.rrr-news-heading p {\n    margin: 14px auto 0;\n    color: #b8b8b8;\n    font-size: 18px;\n    max-width: 650px;\n}\n\n\/* FEATURED STORY *\/\n.rrr-featured-story {\n    display: grid;\n    grid-template-columns: 1.15fr 1fr;\n    background: #111111;\n    border: 1px solid #2b2b2b;\n    border-radius: 18px;\n    overflow: hidden;\n    margin-bottom: 32px;\n    box-shadow: 0 18px 45px rgba(0,0,0,.35);\n}\n\n.rrr-featured-image {\n    min-height: 430px;\n    background-size: cover;\n    background-position: center;\n}\n\n.rrr-featured-content {\n    padding: 42px;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n}\n\n.rrr-story-source {\n    color: #e11d2e;\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    margin-bottom: 12px;\n}\n\n.rrr-featured-content h2 {\n    margin: 0 0 18px;\n    font-size: clamp(28px, 2.5vw, 40px);\n    line-height: 1.08;\n    font-weight: 900;\n}\n\n.rrr-featured-content p {\n    color: #c8c8c8;\n    font-size: 17px;\n    line-height: 1.6;\n    margin: 0 0 26px;\n}\n\n\/* NEWS GRID *\/\n.rrr-news-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 26px;\n}\n\n.rrr-news-card {\n    background: #111111;\n    border: 1px solid #292929;\n    border-radius: 16px;\n    overflow: hidden;\n    transition: transform .2s ease, border-color .2s ease;\n}\n\n.rrr-news-card:hover {\n    transform: translateY(-5px);\n    border-color: #e11d2e;\n}\n\n.rrr-card-image {\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    object-fit: cover;\n    display: block;\n}\n\n.rrr-card-content {\n    padding: 24px;\n}\n\n.rrr-card-content h3 {\n    margin: 0 0 13px;\n    font-size: 23px;\n    line-height: 1.15;\n    font-weight: 800;\n}\n\n.rrr-card-content p {\n    margin: 0 0 20px;\n    color: #bdbdbd;\n    font-size: 15px;\n    line-height: 1.55;\n}\n\n.rrr-read-more {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    color: #ffffff;\n    text-decoration: none;\n    font-size: 13px;\n    font-weight: 800;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n}\n\n.rrr-read-more:hover {\n    color: #e11d2e;\n}\n\n.rrr-read-more span {\n    color: #e11d2e;\n    font-size: 18px;\n}\n\n.rrr-news-status {\n    grid-column: 1 \/ -1;\n    text-align: center;\n    padding: 50px 20px;\n    color: #aaa;\n    font-size: 16px;\n}\n\n@media (max-width: 950px) {\n    .rrr-featured-story {\n        grid-template-columns: 1fr;\n    }\n\n    .rrr-featured-image {\n        min-height: 350px;\n    }\n\n    .rrr-news-grid {\n        grid-template-columns: repeat(2, 1fr);\n    }\n}\n\n@media (max-width: 620px) {\n    .rrr-news-page {\n        padding: 32px 16px 50px;\n    }\n\n    .rrr-featured-content {\n        padding: 28px;\n    }\n\n    .rrr-featured-image {\n        min-height: 260px;\n    }\n\n    .rrr-news-grid {\n        grid-template-columns: 1fr;\n    }\n}\n<\/style>\n\n<div class=\"rrr-news-page\">\n\n    <div class=\"rrr-news-heading\">\n        <div class=\"rrr-news-kicker\">Real Rock Revival<\/div>\n        <h1>Rock News<\/h1>\n        <p>The latest headlines, stories and happenings from the world of rock.<\/p>\n    <\/div>\n\n    <div id=\"rrr-featured\"><\/div>\n\n    <div id=\"rrr-news-grid\" class=\"rrr-news-grid\">\n        <div class=\"rrr-news-status\">Loading the latest rock news...<\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n(function () {\n\n    const featuredArea = document.getElementById('rrr-featured');\n    const grid = document.getElementById('rrr-news-grid');\n\n    function stripHTML(html) {\n        const div = document.createElement('div');\n        div.innerHTML = html || '';\n\n        let text = (div.textContent || div.innerText || '').trim();\n\n        text = text\n            .replace(\/continue reading\\.{0,3}\/gi, '')\n            .replace(\/\\s+\/g, ' ')\n            .trim();\n\n        return text;\n    }\n\n    function getOriginalStoryURL(html) {\n        const div = document.createElement('div');\n        div.innerHTML = html || '';\n\n        const links = div.querySelectorAll('a[href]');\n\n        for (const link of links) {\n            try {\n                const url = new URL(link.href);\n\n                if (\n                    url.hostname.includes('loudwire.com') ||\n                    url.hostname.includes('ultimateclassicrock.com') ||\n                    url.hostname.includes('loudersound.com')\n                ) {\n                    return url.href;\n                }\n            } catch(e) {}\n        }\n\n        return '#';\n    }\n\n    function getSourceName(url) {\n        if (url.includes('loudwire.com')) {\n            return 'Loudwire';\n        }\n\n        if (url.includes('ultimateclassicrock.com')) {\n            return 'Ultimate Classic Rock';\n        }\n\n        if (url.includes('loudersound.com')) {\n            return 'Louder';\n        }\n\n        return 'Rock News';\n    }\n\n    function getImage(post) {\n        try {\n            return post._embedded['wp:featuredmedia'][0].source_url;\n        } catch(e) {\n            return '';\n        }\n    }\n\n    fetch('\/wp-json\/wp\/v2\/posts?per_page=12&_embed=wp:featuredmedia')\n        .then(response => {\n            if (!response.ok) {\n                throw new Error('Unable to load posts.');\n            }\n\n            return response.json();\n        })\n        .then(posts => {\n\n            \/* Keep only posts from our approved rock-news sources *\/\n            posts = posts.filter(post => {\n                const content =\n                    post.content && post.content.rendered\n                        ? post.content.rendered\n                        : '';\n\n                return (\n                    content.includes('loudwire.com') ||\n                    content.includes('ultimateclassicrock.com') ||\n                    content.includes('loudersound.com')\n                );\n            });\n\n            \/* Only show stories that have a Featured Image *\/\n            posts = posts.filter(post => getImage(post));\n\n            if (!posts.length) {\n                grid.innerHTML =\n                    '<div class=\"rrr-news-status\">Rock news is coming soon.<\/div>';\n                return;\n            }\n\n            \/* NEWEST STORY BECOMES FEATURED *\/\n            const lead = posts.shift();\n\n            const leadURL = getOriginalStoryURL(lead.content.rendered);\n            const leadSource = getSourceName(leadURL);\n            const leadExcerpt = stripHTML(lead.excerpt.rendered);\n            const leadImage = getImage(lead);\n\n            featuredArea.innerHTML = `\n                <article class=\"rrr-featured-story\">\n\n                    <div class=\"rrr-featured-image\"\n                         style=\"background-image:url('${leadImage}')\">\n                    <\/div>\n\n                    <div class=\"rrr-featured-content\">\n\n                        <div class=\"rrr-story-source\">\n                            Featured Story \u2022 ${leadSource}\n                        <\/div>\n\n                        <h2>${lead.title.rendered}<\/h2>\n\n                        <p>${leadExcerpt}<\/p>\n\n                        <a class=\"rrr-read-more\"\n                           href=\"${leadURL}\"\n                           target=\"_blank\"\n                           rel=\"noopener noreferrer\">\n                            Read Full Story <span>\u2192<\/span>\n                        <\/a>\n\n                    <\/div>\n\n                <\/article>\n            `;\n\n            grid.innerHTML = '';\n\n            \/* REMAINING STORIES *\/\n            posts.forEach(post => {\n\n                const storyURL =\n                    getOriginalStoryURL(post.content.rendered);\n\n                const source =\n                    getSourceName(storyURL);\n\n                const excerpt =\n                    stripHTML(post.excerpt.rendered);\n\n                const image =\n                    getImage(post);\n\n                const card =\n                    document.createElement('article');\n\n                card.className = 'rrr-news-card';\n\n                card.innerHTML = `\n                    <img decoding=\"async\" class=\"rrr-card-image\"\n                         src=\"${image}\"\n                         alt=\"\">\n\n                    <div class=\"rrr-card-content\">\n\n                        <div class=\"rrr-story-source\">\n                            ${source}\n                        <\/div>\n\n                        <h3>${post.title.rendered}<\/h3>\n\n                        <p>${excerpt}<\/p>\n\n                        <a class=\"rrr-read-more\"\n                           href=\"${storyURL}\"\n                           target=\"_blank\"\n                           rel=\"noopener noreferrer\">\n                            Read Full Story <span>\u2192<\/span>\n                        <\/a>\n\n                    <\/div>\n                `;\n\n                grid.appendChild(card);\n            });\n\n        })\n        .catch(error => {\n\n            console.error('RRR Rock News:', error);\n\n            grid.innerHTML =\n                '<div class=\"rrr-news-status\">Unable to load rock news right now.<\/div>';\n        });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Real Rock Revival Rock News The latest headlines, stories and happenings from the world of rock. Loading the latest rock news&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-209","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/comments?post=209"}],"version-history":[{"count":7,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/209\/revisions"}],"predecessor-version":[{"id":232,"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/pages\/209\/revisions\/232"}],"wp:attachment":[{"href":"https:\/\/realrockrevival.com\/index.php\/wp-json\/wp\/v2\/media?parent=209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}