Comment afficher le contenu d'une page dans un modèle de page?

11

Dans mon site WordPress, j'ai créé un modèle de page personnalisé, qui contenait une requête personnalisée [à l'aide de WP_Query() ]. Avec cette requête, je peux parfaitement obtenir les messages d’une certaine catégorie. Mais je souhaite afficher le contenu de la page avec les messages interrogés.

Ce sera comme:
---------------------------

En-tête de page

contenu de la page

En-tête de message interrogé

contenu de l'article interrogé
---------------------------

  • Que puis-je faire?
posée Mayeenul Islam 11.03.2013 - 19:16

2 réponses

20

J'utilise deux boucles. La première boucle consiste à afficher le contenu de la page, et la seconde à afficher le contenu de la publication demandée. J'ai commenté dans les codes si nécessaire. J'ai mis l'accent sur les boucles, comme Deckster0 a déclaré dans le support WordPress , the_content() ne fonctionne que dans une boucle WordPress. Je place ce code dans mon propre modèle:

<?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 -->
    
réponse donnée Mayeenul Islam 11.03.2013 - 19:39
0

Deux boucles sont communes pour le faire, mais un peu surdosées.

Chaque message ou page vous donne la super-variable $post . Vous êtes-vous déjà demandé pourquoi votre get_post_meta() fonctionne avec un simple $post->ID ;)?

Ainsi, avant de démarrer WP_Query () qui récupère vos publications répertoriées, vous pouvez accéder aux données de page / post actuelles avec $post->ID , $post->post_content , $post->guid , etc.

.

Dans la boucle, cette variable est remplie par la publication en boucle. Pour le sauvegarder pour plus tard, vous pouvez soit créer une nouvelle variable

$temp_post = $post

// new WP_Query() + loop here

ou appelez

  

wp_reset_query ()

après la liste. La dernière fonction doit quand même être appelée pour garantir que les données de votre barre latérale sont correctes pour la page / publication en cours.

    
réponse donnée simonthesorcerer 11.03.2013 - 22:34

Lire d'autres questions sur les étiquettes