// Safe wrapper to avoid blank pages and log errors add_action('init', function(){ if (shortcode_exists('ab-events')) { global $shortcode_tags; $orig = $shortcode_tags['ab-events']; $shortcode_tags['ab-events'] = function($atts = array(), $content = null) use ($orig) { ob_start(); try { $out = call_user_func($orig, $atts, $content); $buf = ob_get_clean(); $final = (string)$out . (string)$buf; if ($final === '') { error_log('[ab-events] Shortcode returned empty string.'); } return $final; } catch (Throwable $e) { error_log('[ab-events] ERROR ' . get_class($e) . ': ' . $e->getMessage() . ' @ ' . $e->getFile() . ':' . $e->getLine()); error_log('[ab-events] TRACE ' . $e->getTraceAsString()); ob_end_clean(); return '
Eventos no disponibles temporalmente.
'; } }; } }, 99); https://diario.global/post-sitemap.xml 2025-10-06T08:06:30+00:00 https://diario.global/page-sitemap.xml 2025-10-06T07:56:01+00:00 https://diario.global/category-sitemap.xml 2025-10-06T08:06:30+00:00 https://diario.global/post_tag-sitemap.xml 2025-10-02T07:54:54+00:00 https://diario.global/author-sitemap.xml 2025-07-21T08:58:56+00:00