Buenas tardes.
Tenía resuelto el mostrar una entrada específica en el sidebar y en c¡ualquier entrada y página. Es decir, podía mostrar el contenido de una entrada con un id en cualquier parte de la web.
La solución que tenía es incluir en functions.php el siguiente texto.
Contenido solo visible a usuarios registrados
Hola Dolores,
Trata sustituyendo el código que nos compartes por este:
function aw_include_post($atts) {
// Aseguramos que 'id' esté presente y lo convertimos a entero
$thepostid = intval($atts['id']);
if ($thepostid <= 0) {
return ''; // Si no hay ID válido, devolvemos vacío
}
// Usamos WP_Query en lugar de query_posts
$query = new WP_Query(array(
'p' => $thepostid, // Consulta por ID del post
'post_status' => 'publish' // Asegura que sea un post publicado
));
$output = '';
if ($query->have_posts()) {
// Usamos buffering para capturar el contenido
ob_start();
while ($query->have_posts()) {
$query->the_post();
the_content(); // Imprime el contenido del post
}
$output = ob_get_clean(); // Capturamos el contenido impreso
}
// Restablecemos el query principal
wp_reset_postdata();
return $output; // Devolvemos el contenido capturado
}
// Agregamos el shortcode
add_shortcode("incluir_entrada", "aw_include_post");
Con el mismo shortcode que utilizas. Verifica y nos comentas.
Un saludo
Me funcionó.
Creo que me dejó de funcionar, por que habían cambiado el thema al Thema padre y no a un thema hijo donde cambiaba lel fichero functions.php.
Al final dejé el código que me enviaste y me funciona perfectamente.
Muchas gracias.
Hola Dolores.
¡Genial! Me alegra mucho que lo hayas resuelto. 😊
Si necesitas más ayuda, no dudes en contactarnos.
Un saludo