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 veux montrer le contenu de la page avec les messages demandés.
La chose sera comme:
---------------------------
contenu de la page
contenu du message demandé
---------------------------
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 souligné dans les boucles que Deckster0 disait dans le support WordPress que, the_content()
ne fonctionne que dans une boucle WordPress. Je place ce code dans un 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 -->
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
;)?
Par conséquent, avant de lancer WP_Query () qui obtient les publications répertoriées, vous pouvez accéder aux données de page/publication en cours 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 appeler
wp_reset_query ()
après la liste. La dernière fonction doit quand même être appelée pour s'assurer que les données de votre barre latérale sont correctes pour la page/publication en cours.