// SEO: Disable user sitemap (exposes editor usernames to scrapers) add_filter('wp_sitemaps_add_provider', function($provider, $name) { if ($name === 'users') return false; return $provider; }, 10, 2); // SEO: Remove post_tag archives from XML sitemap (thin/low-value pages) add_filter('wp_sitemaps_taxonomies', function($taxonomies) { unset($taxonomies['post_tag']); return $taxonomies; }); // SEO: Auto-generate SEO title on publish via Gemini API (2026-03-25) add_action('transition_post_status', 'hannity_auto_seo_title', 10, 3); function hannity_auto_seo_title($new_status, $old_status, $post) { // Only fire when transitioning TO publish for the first time if ($new_status !== 'publish' || $post->post_type !== 'post') return; if ($old_status === 'publish') return; // skip re-saves of already-published posts // Skip if seo_title already set if (get_post_meta($post->ID, 'seo_title', true)) return; $title = $post->post_title; if (empty($title)) return; $prompt = 'Convert this news headline to a clean SEO title tag (50-65 chars max). ' . 'Remove ALL CAPS prefixes like BREAKING: BUSTED: WATCH: BOMBSHELL: etc. ' . 'Remove [WATCH] [VIDEO] suffixes. Factual, keyword-rich, no spin. ' . 'Return ONLY the SEO title as a plain string, no quotes, no explanation.' . "\n\nHeadline: " . $title; $api_key = 'AIzaSyB-D7nxEi4UzLdoKIZBAY_ydYS5JT8EBCU'; $url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=' . $api_key; $response = wp_remote_post($url, array( 'headers' => array('Content-Type' => 'application/json'), 'body' => json_encode(array( 'contents' => array(array('parts' => array(array('text' => $prompt)))), 'generationConfig' => array('temperature' => 0.2, 'maxOutputTokens' => 100), )), 'timeout' => 10, )); if (is_wp_error($response)) return; $data = json_decode(wp_remote_retrieve_body($response), true); $seo_title = trim($data['candidates'][0]['content']['parts'][0]['text'] ?? ''); if (empty($seo_title)) return; $seo_title = trim($seo_title, '"\''); // strip any surrounding quotes Gemini adds update_post_meta($post->ID, 'seo_title', $seo_title); update_post_meta($post->ID, '_seo_title', 'field_56425125fb2ed'); // ACF field key ref }
Entertainment

WATCH NOW: Singer-Songwriter Jon Kahn Debuts Haunting New Song One Year After Losing Home in L.A. Fires

posted by Hannity Staff - 1.06.26

One year after losing his home of more than 20 years in the Palisades fires, Breitbart’s Jon Kahn is turning devastation into a new song and video: “After It Burns.”

It’s intimate. Hard-edged. A reflection on loss, anger, and the resolve that shows up when everything familiar is reduced to ash. The song is raw and honest — but it’s not nihilistic. There’s beauty in it. And more importantly, there’s hope.

The video opens with real Ring doorbell footage: Kahn’s white picket fence engulfed in flames, the kind of scene that doesn’t feel real until it’s playing back on a screen. He watched it with his father from only miles away. “I looked at my Dad and said, ‘it’s gone,’ and he just nodded. There wasn’t much to say,” Kahn recalled.

Breaking Alerts
Don't miss the stories that matter.
Get Sean's breaking news alerts — free, direct to your inbox.
Sign Up

From there, it tightens into a close, character-driven portrait of Kahn performing the song — personal without turning theatrical. Aside from the Ring footage, the video avoids catastrophe porn, even as it gestures at the scale of what happened in the Palisades and Altadena on January 7, 2025, when thousands of homes were destroyed and lives were lost.

Kahn didn’t write a song for months after the fires. He simply, as he put it, “walked by all his instruments, looked at them, and then kept walking,” but eventually he sat down at an out-of-tune piano, and “After it Burns” poured out.

And we’re so happy it did.

Watch the video for Jon Kahn’s “After It Burns” above.

[h/t Breitbart News]