Ya vimos hace tiempo como incrustar una página WordPress dentro de otra, pero hoy vamos a rizar el rizo, creando un «shortcode» que, a voluntad y cuando lo necesitemos, nos permita insertar una entrada dentro de otra, o dentro de una página, lo que nos apetezca.
Dale que vamos …
Lo primero que vamos a hacer es crear la función, para eso añadimos el siguiente código en nuestro plugin de funciones:
function aw_include_post($atts) { $thepostid = intval($atts[id]); $output = ''; query_posts("p=$thepostid"); if (have_posts()) : while (have_posts()) : the_post(); $output .= get_the_content($post->ID); endwhile; else: // si falla no sale nada endif; wp_reset_query(); return $output; } add_shortcode("incluir_entrada", "aw_include_post");
Guardamos los cambios y ya tenemos creado el shortcode, en este caso incluir_entrada
. Para usarlo dentro de una entrada solo tenemos que saber el ID numérico de la entrada a insertar dentro de otra, algo fácil, pues solo tienes que fijarte en la URL de cualquier entrada que estés editando (algo como …/wp-admin/post.php?post=63441&action=edit
, o sino también colocando el cursor sobre el enlace a cualquier entrada desde la ventana de navegación de entradas del Escritorio, que si te fijas en la barra de estado del navegador aparecerá, entre otros elementos del enlace, un número, que será el ID.
Ya sabiendo el ID de la entrada a incrustar la sintaxis para añadirla sería algo así:
[incluir_entrada id="2794"]
Donde el ID de la entrada a incluir es «2794», por supuesto. Y lo que mostrará será el contenido de la entrada con el ID 2794, ya sea incluido dentro de una entrada, una página, o incluso en un widget de tu barra lateral, tu decides.
Un uso muy chulo de este truco sería crear una entrada de «utilidad» con un texto que vayas a usar muchas veces en otras entradas. Para incluir ese texto (o lo que sea) repetitivo solo tendría que aprenderte el ID de la misma e incluirlo – gracias a este truco – rápidamente en cualquier entrada donde lo necesites.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Es un código que pienso usar ya que se parece a lo que entendemos por "include" pero deciros que si el Post que vamos a añadir contiene algún otro shortcode, os aparece como:
[shortcode] texto[/shortcode]
De todas formas genial… Gracias
lo he probado, y el resultado es bastante defectuoso… se insertan codigos html en medio del texto del articulo insertado, se rompen estilos … en fin no lo recomiendo
Funciona esto para incluir una entrada dentro de una página?
Si, una página es un tipo de entrada
Hola fernando, me gustaria crear entradas en las diferentes paginas del menu y en las subpaginas.
No entiendo bien como se hace lo de crear entradas desde enlaces personalizados,…saludos (soy novato en esto)
Este plugin sirve: https://es.wordpress.org/plugins/insert-pages/
con esto puedes construir pies en un pagina e insertarlos en tu sitio ??
Hola, este shortcode es lo mas cercano que encontre para insertar la fecha de creación y el autor de la entrada como la primera linea del cuerpo de la entrada por ejemplo:
«Por Juan Flores el 01/01/2018. Acá comienza el texto del cuerpo de la entrada…»
como puedo usar un shortcode para la fecha y el autor? gracias.