Como exibir o conteúdo da página em um modelo de página?

11

No meu site WordPress, criei um modelo de página personalizado, que continha uma consulta personalizada [usando WP_Query() ]. Com essa consulta, posso perfeitamente obter as postagens de uma determinada categoria. Mas quero mostrar o conteúdo da página junto com as postagens consultadas.

A coisa será como:
---------------------------

Título da Página

conteúdo da página

Título de postagem consultado

conteúdo dos posts consultados
---------------------------

  • O que posso fazer?
por Mayeenul Islam 11.03.2013 / 19:16

2 respostas

20

Estou usando dois loops. O primeiro loop é mostrar o conteúdo da página, e o segundo loop é mostrar o conteúdo da postagem consultada. Eu comentei nos códigos onde necessário. Eu enfatizei os loops, como Deckster0 disse no suporte a WordPress que, the_content() funciona apenas dentro de um loop do WordPress. Estou colocando esse código em um modelo próprio:

<?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 -->
    
por Mayeenul Islam 11.03.2013 / 19:39
0

Dois loops são comuns para fazer isso, mas um pouco de overdose.

Todo post ou página fornece a super-variável $post . Já se perguntou por que o seu get_post_meta() funciona com um simples $post->ID ;)?

Portanto, antes de iniciar o WP_Query () que obtém as postagens listadas, você pode acessar a página atual / pós-dados com $post->ID , $post->post_content , $post->guid e assim por diante.

No loop, essa variável é preenchida pelo post em loop. Para salvá-lo para mais tarde, você pode criar uma nova variável

$temp_post = $post

// new WP_Query() + loop here

ou ligue para

  

wp_reset_query ()

após a listagem. A última função deve ser chamada de qualquer forma para garantir que os dados em sua barra lateral sejam os adequados para a página / postagem atual.

    
por simonthesorcerer 11.03.2013 / 22:34