J'utilise WP à partir d'un script externe PHP en incluant le fichier wp-load.php
.
Toutes les fonctions et tout fonctionnent comme prévu jusqu'ici, sauf une chose: je ne peux pas faire fonctionner le $wp_query->found_posts
après avoir récupéré des publications avec la fonction get_posts()
.
Quels indices devrais-je utiliser à la place?
Merci!
La fonction WordPress get_posts()
crée sa propre instance de WP_Query
qui n'est pas accessible de manière globale:
function get_posts($args = null) {
// ... cut ...
$get_posts = new WP_Query;
return $get_posts->query($r);
}
afin que vous puissiez plutôt essayer
$results = get_posts($args);
echo count($results);
pour vous donner le nombre de tableaux d'objets post renvoyés par get_posts()
.
Vous pouvez envisager d'utiliser directement la classe WP_Query()
.
Voici un exemple d'utilisation:
<?php
// your input parameters:
$args = array(
'posts_per_page' => 10,
);
$my_query = new WP_Query( $args );?>
Found posts: <?php echo $my_query->found_posts;?>
<?php if ( $my_query->have_posts() ):?>
<ul>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_postdata();?>
Nous utilisons finalement wp_reset_postdata()
, pour restaurer l’objet global $post
, puisque nous le changeons via la méthode the_post()
.
http://codex.wordpress.org/Function_Reference/wp_reset_postdata