Oferta SiteGround Black Friday

Insertar entradas dentro de otras en WordPress

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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 3.8 / 5. Total de votos: 11

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

10 comentarios en “Insertar entradas dentro de otras en WordPress”

  1. Luis Martínez

    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

  2. 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

      1. 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)

  3. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio