J'ai une catégorie, appelée événements. Il est affecté à un poste. J'ai donc créé la boucle suivante:
$args = array ('category_name' => 'events', 'posts_per_page' => 4, 'orderby' => 'date', 'order' => 'DESC' );
$category_posts = new WP_Query($args);
if ($category_posts->have_posts()) {
while ($category_posts->have_posts()) {
$category_posts->the_post();
var_dump($category_posts->the_post());
?>
<div class="col-md-6">
<?php $category_posts->the_post_thumbnail(array('class' => 'events-image')); ?>
</div>
<div class="col-md-6">
<h4><?php echo $category_posts->the_title(); ?></h4>
<span class="date"><?php echo date('M j, Y', $category_posts->get_the_date()); ?></span>
<p><?php echo implode(' ', array_slice(str_Word_count($category_posts->the_content(), 2), 0,120)); ?> [...]</p>
</div>
<?php
}
}
Notez la var_dump($category_posts->the_post());
elle entre ici et fait ceci var_dump
mais la sortie est NULL
. wtf?
Ce qui est déroutant est-ce qu'il a des posts, son get dans la déclaration while mais le $category_posts->the_post()
est nul? Cela n'a guère de sens.
order_by
, remplacé par orderby
Selon le codex wordpress, the_post () "Itère l'index de publication dans The Loop. Récupère la publication suivante, configure la publication, définit la propriété" dans la boucle "sur true." Tout cela se produit dans l'objet post lui-même.
Si vous ne possédez qu'une seule publication et exécutez the_post deux fois, vous atteindrez la fin du décompte. Dans ce cas, même si vous effectuez un var_dump de the_post, la fonction est toujours exécutée. C'est pourquoi vous ne voyez pas les résultats ci-dessous ... vous avez déjà atteint la fin de la boucle avant de commencer à essayer de générer des données.
Aussi "Cette fonction ne renvoie aucune valeur."
Ce qui signifie que var_dump retournera toujours la valeur null, car vous viderez les résultats d'une fonction qui ne renvoie rien.
Si vous voulez des résultats utiles, var_dump ($ category_posts) retournera l'objet post, qui contiendra toutes les publications trouvées et d'autres informations. -> the_post est juste une méthode de l'objet post lui-même.