¿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?

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.