En WordPress, la función ob_start
y otras funciones relacionadas con “output buffering” (ob) se utilizan para controlar la salida que normalmente se enviaría al navegador. Esto es especialmente útil cuando se desarrollan shortcodes, ya que permite capturar y manipular la salida HTML generada por el shortcode antes de que se envíe al navegador. Aquí te explico en detalle cómo funciona y por qué es útil.
function my_recent_posts_shortcode($atts) {
ob_start();
// Consultar los posts recientes
$recent_posts = wp_get_recent_posts(array('numberposts' => 5));
if (!empty($recent_posts)) {
echo '<ul>';
foreach ($recent_posts as $post) {
echo '<li><a href="' . get_permalink($post["ID"]) . '">' . $post["post_title"] . '</a></li>';
}
echo '</ul>';
} else {
echo 'No recent posts found.';
}
// Capturar la salida del búfer
$output = ob_get_contents();
// Limpiar el búfer
ob_end_clean();
// Devolver el contenido capturado
return $output;
}
add_shortcode('my_recent_posts', 'my_recent_posts_shortcode');