2010-11-03 36 views
22

¿Cómo incluyo el contenido de la página de una o más páginas en otra página?Wordpress: incluir contenido de una página en otra

ex. Tengo páginaA, páginaB y pageC y quiero incluir el contenido de estas páginas en pageX

hay una función de wordpress que carga el cargo de una página/publicación especificada?
como show_post ("pageA") ??

+0

La forma más sencilla podría ser [este plugin] (http://wordpress.org/plugins/insert-pages/) – Chris

Respuesta

42

Hola @dany:

No es una función show_post() per se en WordPress núcleo pero es extremadamente fácil de escribir:

function show_post($path) { 
    $post = get_page_by_path($path); 
    $content = apply_filters('the_content', $post->post_content); 
    echo $content; 
} 

Tenga en cuenta que esto se llamaría con la ruta de la página , es decir:

<?php show_post('about'); // Shows the content of the "About" page. ?> 
<?php show_post('products/widget1'); // Shows content of the "Products > Widget" page. ?> 

Por supuesto que probablemente no nombrar una función como genéricamente como show_post() en caso de que el núcleo de WordPress agregue una función del mismo nombre en el futuro. Tu elección sin embargo.

También, y no poca intención de @kevtrout porque sé que es muy bueno, considere publicar sus preguntas en el sitio de WordPress hermana de Stackoverflow WordPress Answers en el futuro. Hay un porcentaje mucho más alto de entusiastas de WordPress que responden preguntas allí.

Espero que esto ayude.

-Mike

+0

Wow, exactamente lo que quería. ¡Muchas gracias Mike! Y gracias por el enlace. – Zebra

+1

@dany - De nada.Acércate a las respuestas de WordPress la próxima vez y verás más como esto ... :) – MikeSchinkel

+0

¿hay alguna manera de hacer esto con los elementos individuales? – sat

1
<?php query_posts('p=43'); 

global $more; 
//set $more to 0 in order to only get the first part of the post 
$more = 0; 

    // the Loop 
    while (have_posts()) : the_post(); 

    // the content of the post ?> 
    the_title(); 
    the_content(); 

    endwhile; ?> 

Esto es obviamente una parte de la publicación, obtuve el detalle del wordpress codex.

+0

llegaste ordenadas? – Stuart

0

Interesante ... Busqué la forma de integrar contenidos Wordpress en otros lugares (como en, en otro sitio web), y encontré algunas cosas ...

  • www. shooflydesign.org/buzz/past/embedding_wordpress. html
    • Muestra cómo incrustar contenido de WordPress en otro sitio con una secuencia de comandos php; tal vez simplemente use lo mismo para incrustar Wordpress en sí mismo?
  • www. corvidworks. com/articles/wordpress-content-on-other-pages
    • Concepto similar; incrustar Wordpress en otra página; sólo tratar de utilizar esa herramienta en un nuevo puesto WP
  • mismos alimenta
    • Mi búsqueda levantado algunas sugerencias para utilizar sólo un alimento a su propio blog para incrustar en un poste. No hay nada que lo impida. Es posible que desee automatizarlo y, por lo tanto, reestructurar el feed para que se vea correctamente podría ser problemático, pero vale la pena intentarlo según lo que desee hacer.

espero que aquellos son cuasi-útiles. Si bien todas son soluciones para obtener su contenido de WP en algún lugar otro que WP ... pueden funcionar para su pregunta y le permiten mostrar A, B y C en X.

+0

Gracias, estoy probando su sugerencia – Zebra

2

Las páginas son solo publicaciones , con un post_type de 'página' en la base de datos. Puede mostrar el contenido de varias páginas en otra página escribiendo una consulta posterior en su plantilla pageX que obtiene las publicaciones que especifica y las emite en un Loop.

Hay tres maneras de obtener contenido de la entrada de la base de datos:

  1. get_posts
  2. query_posts
  3. WP_Query

estos vínculos apuntan a la Codex de WordPress. Get_posts y query_posts tienen un argumento disponible, 'page_id', donde puedes especificar el id de la página que deseas recuperar y mostrar.

+0

@ketrout: gracias por los enlaces – Zebra

0

Hay una función de Wordpress para mostrar el contenido de una página en particular dentro de otro utilizando query_posts() es:

<?php query_posts("posts_per_page=1&post_type=page&post_id=134"); the_post(); ?> 

debe ajustar el número de páginas que se mostrará a 1 , el tipo de publicación es página en lugar de publicación y la página ID

+0

query_posts no permitirá una llamada de 'post_id', sino que debe usar 'p'. El código tal como está funcionará, pero devolverá la página creada más recientemente. El código fijo a continuación devolverá el 'post_id' que se especifica. ' ' – nuclearsugar

2

Puede instalar un complemento "Improved Include Page". Una vez instalado, se crea la página X e introduce:

[include-page id="123"] 
[include-page id="124"] 
[include-page id="125"] 

donde éstas son las identificaciones de las páginas A, B y C, respectivamente

1

encontré this answer publicado en los foros de Wordpress. Agregas un pequeño código a functions.php y luego usas un shortcode cuando lo desees.

function get_post_page_content($atts) { 
     extract(shortcode_atts(array(
      'id' => null, 
      'title' => false, 
     ), $atts)); 

     $the_query = new WP_Query('page_id='.$id); 
     while ($the_query->have_posts()) { 
      $the_query->the_post(); 
       if($title == true){ 
       the_title(); 
       } 
       the_content(); 
     } 
     wp_reset_postdata(); 

    } 
    add_shortcode('my_content', 'get_post_page_content'); 

Para el código corto,

[my_content id="Enter your page id number" title=Set this to true if you want to show title /] 
Cuestiones relacionadas