// 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 } POST OP-ED: Trump’s Home-run State of the Union 2026 Showed Exactly How Crazy the Democrats Are
Opinion

POST OP-ED: Trump’s Home-run State of the Union Showed Exactly How Crazy the Democrats Are

posted by Hannity Staff - 2.25.26

By The New York Post Editorial Board

President Trump hit it out of the park (again) with his 2026 State of the Union address, perhaps his most remarkable speech yet.

The event was an unabashed celebration of America in its 250th year, hailing heroes from the Olympic hockey champions to 100-year-old veterans — and with a close reiteration why the nation’s best days are yet to come.

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

He was the happy warrior we’d asked him to be, with a strong, clear message untainted by grievance — even as he expressed his disappointment with last week’s Supreme Court ruling on tariffs and drew clear distinctions between his program and the opposition’s.

He deftly drew out the lunacy of Democrats’ positions on illegal immigration, crime and trans issues — time and again flagging their obsession with peculiar “rights” at the expense of common sense.

And of course rightly delivered a powerful economic message.

He flagged the inflation, wage stagnation and other horrors produced when Democrats ran Washington as the causes of the “affordability” crisis.

He explained how Americans’ lives are getting better — rising wages, lower gas prices, fat tax rebates coming — and should keep improving.

He got the opposition to rise in applause for some things — the gold medalists, the other military and civilian heroes he honored — then called out how they refused to stand even when he called for justice for Charlotte murder victim Iryna Zarutska.

How stark the line, a clear choice for voters in the midterms, when he declared that our government’s first duty is to protect US citizens, not illegal immigrants — and Democrats sat silent as Republicans cheered.

“These people are crazy,” he rightly declared as he pointed to the left side of the chamber.

He had policy brags — Trump Accounts for kids, lower prescription drug prices, victories over crime in DC and nationwide — and big themes like cheering religious revival and denouncing political violence as he honored the late Charlie Kirk.

He had poetry, particularly in his closing peroration.

He innovated a whole new kind of State of the Union drama, not just recognizing his guests but having many enter on cue, awarding medals and other signal honors as appropriate and leading the room in both applause and profound sympathy.

Even in a record-long speech, he couldn’t cover everything he and his team are doing for the country or all the reasons to expect a brighter future this year and in the long term.

Yet he gave listeners good cause to believe that the state of the Union is indeed strong — and solid reason to know which party deserves the credit.

Thank you for visiting Hannity.com. You are about to leave
Hannity.com and proceed to a site owned and operated by a third party.
Hannity.com has no control over the content of this third-party site.
Click OK to proceed.
OK
X
You may if you would no longer like to receive a newsletter.
You have been successfully unsubscribed!
Please see our Terms of Use and Privacy Notice .
If you have any questions or concerns please contact us.
$( document ).ready(function() { show_tout_banner=0; function bannerswap(){ //console.log('checkbanners'); show_tout_banner++; if($('.mobile-tout >div ').length >1){ $('.mobile-tout').addClass('t-hide'); } if(show_tout_banner > $('.mobile-tout >div').length -1){ $('.mobile-tout:eq(0)').removeClass('t-hide'); show_tout_banner=0; } else{ $('.mobile-tout:eq('+show_tout_banner+')').removeClass('t-hide'); } //console.log('show banner '+show_tout_banner); } if($('.mobile-tout >div ').length){ bannerswap(); show_tout_banner_rotator = setInterval(bannerswap, 5000); //console.log($('.mobile-tout').length); } });