¿Cómo mostrar el contenido de la página en una plantilla de página?

11

En mi sitio de WordPress, hice una plantilla de página personalizada, que contenía una consulta personalizada [usando WP_Query() ]. Con esa consulta, puedo obtener perfectamente las publicaciones de una determinada categoría. Pero quiero mostrar el contenido de la página junto con las publicaciones consultadas.

La cosa será como:
---------------------------

Encabezado de página

contenido de la página

Título de la publicación consultada

contenido de la publicación consultada
---------------------------

  • ¿Qué puedo hacer?
pregunta Mayeenul Islam 11.03.2013 - 19:16

2 respuestas

20

Estoy usando dos bucles. El primer bucle es para mostrar el contenido de la página, y el segundo para mostrar el contenido de la publicación consultada. Comenté en los códigos donde sea necesario. Hice hincapié en los bucles, ya que Deckster0 dijo en el soporte de WordPress que, the_content() solo funciona dentro de un bucle de WordPress. Estoy colocando estos códigos en mi propia plantilla:

<?php
/*
* Template Name: My Template
*/
get_header(); ?>

<div id="container">
    <div id="content" class="pageContent">

    <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title -->
    <?php
    // TO SHOW THE PAGE CONTENTS
    while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop -->
        <div class="entry-content-page">
            <?php the_content(); ?> <!-- Page Content -->
        </div><!-- .entry-content-page -->

    <?php
    endwhile; //resetting the page loop
    wp_reset_query(); //resetting the page query
    ?>

    <?php
    // TO SHOW THE POST CONTENTS
    ?>                        
        <?php
        $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example
        ?>
        <?php if ( $my_query->have_posts() ) : ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

            <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title -->
            <div class="entry-content">
                <?php the_excerpt(); ?> <!-- Queried Post Excerpts -->
            </div><!-- .entry-content -->

        <?php endwhile; //resetting the post loop ?>

        </div><!-- #post-<?php the_ID(); ?> -->

        <?php
        wp_reset_postdata(); //resetting the post query
        endif;
        ?>

    </div><!-- #content -->         
</div><!-- #container -->
    
respondido por el Mayeenul Islam 11.03.2013 - 19:39
0

Dos bucles son comunes para hacer esto, pero un poco de sobredosis.

Cada publicación o página te da la supervariable $post . ¿Alguna vez te has preguntado por qué tu get_post_meta() funciona con un simple $post->ID ;)?

Por lo tanto, antes de iniciar WP_Query () que obtiene sus publicaciones enumeradas, puede acceder a la página actual / a los datos con $post->ID , $post->post_content , $post->guid y así sucesivamente.

En el bucle, esta variable se llena con la publicación en bucle. Para guardarlo para más adelante, puedes hacer una nueva variable

$temp_post = $post

// new WP_Query() + loop here

o llame

  

wp_reset_query ()

después de la lista. La última función debe llamarse de todos modos para garantizar que los datos de la barra lateral sean los adecuados para la página / publicación actual.

    
respondido por el simonthesorcerer 11.03.2013 - 22:34

Lea otras preguntas en las etiquetas