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

13

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 del mensaje consultado

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

  • ¿Que puedo hacer?
Mayeenul Islam
fuente
2
¿Cuál es el problema? Esta es una plantilla de página, por lo que tiene acceso al contenido de la página. Por medio de otra consulta por separado, obtiene acceso a una publicación específica, por ejemplo, y así puede generar su contenido. ¿Entonces?
tfrommen
Por favor sea paciente antes de votar. Estoy luchando por eso y luego encontré la solución. Intenté hacer preguntas y respuestas aquí para compartir la lógica con los demás; creo que aclarará el hecho de la forma en que lo estoy buscando. Espero que las preguntas y respuestas sean claras para ti.
Mayeenul Islam
En primer lugar, no rechacé su pregunta. En segundo lugar, gracias por compartir sus conocimientos con nosotros. Tienes toda la razón al hacerlo. Supongo que el problema es / fue que esta pregunta no fue tan difícil de resolver para usuarios / desarrolladores experimentados de WP, así como el hecho de que publicaste la pregunta solo. Si desea hacer preguntas y respuestas desde el principio, simplemente incluya su respuesta / solución directamente en la misma página en la que escribe su pregunta. Debajo del botón Publicar su pregunta hay una casilla de verificación Responda su propia pregunta . Gracias de nuevo.
desde el
wp_reset_postdata()para el rescate Debe hacerse después de cada consulta personalizada .
kaiser

Respuestas:

21

Estoy usando dos bucles. El primer bucle es mostrar el contenido de la página, y el segundo bucle es mostrar el contenido de la publicación consultada. Comenté los códigos cuando fue necesario. Destaqué en los bucles, como Deckster0 dijo en el soporte de WordPress que the_content()solo funciona dentro de un bucle de WordPress. Estoy colocando este código 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 -->
Mayeenul Islam
fuente
Esa segunda consulta no debería estar dentro if( have_posts() )porque esa declaración siempre será verdadera. Debe llamar if( $my_query->have_posts() )después de las $my_query = new WP_Query( 'cat=1' );líneas y args si desea verificar que la consulta tenga resultados.
t31os
@ t31os tienes razón. Que es mi culpa. Ahora corrigió el código a tal. Gracias por la identificacion. :)
Mayeenul Islam
0

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

Cada publicación o página te da la súper variable $post. ¿Alguna vez se preguntó por qué get_post_meta()trabaja con un simple $post->ID;)?

Por lo tanto, antes de iniciar el WP_Query () que recibe sus mensajes de la lista, se puede acceder a los post-página-/ datos actuales con $post->ID, $post->post_content, $post->guidy así sucesivamente.

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

$temp_post = $post

// new WP_Query() + loop here

o llamar

wp_reset_query ()

Después del listado. La última función debe llamarse de todos modos para garantizar que los datos en su barra lateral sean los correctos para la página / publicación actual.

simonthesorcerer
fuente