function agregar_prism_si_shortcode($content) {
// Verificar si el contenido contiene el shortcode
if (has_shortcode($content, 'codigo_vba')) {
// Si contiene el shortcode, cargar estilos y scripts necesarios
wp_enqueue_style('prism', 'https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism.min.css', array(), '1.23.0');
wp_enqueue_script('prism', 'https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/prism.min.js', array(), '1.23.0', true);
}
return $content;
}
add_filter('the_content', 'agregar_prism_si_shortcode');
function shortcode_codigo_vba($atts, $content = null) {
// Desactivar wpautop para el contenido del shortcode
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
// Iniciar el búfer de salida
ob_start();
// Envolver el contenido en una etiqueta <pre> para preservar el formato
echo '<pre><code class="language-vba">' . trim(esc_html($content)) . '</code></pre>';
// Obtener el contenido del búfer y limpiarlo
$output = ob_get_clean();
// Restaurar el estado original de wpautop
add_filter('the_content', 'wpautop');
add_filter('the_excerpt', 'wpautop');
return $output;
}
add_shortcode('codigo_vba', 'shortcode_codigo_vba');