web-dev-qa-db-fra.com

Compter les messages renvoyés par get_posts dans external PHP scénario

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!

2
Aram Boyajyan

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().

Exemple d'utilisation de la classe WP_Query ():

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().

Référence:

http://codex.wordpress.org/Function_Reference/wp_reset_postdata

http://codex.wordpress.org/Class_Reference/WP_Query

5
birgire