wake-up-neo.net

Zählen Sie die von get_posts in external zurückgegebenen Beiträge PHP Skript

Ich verwende WP aus einem externen PHP Skript, indem ich die wp-load.php-Datei einbinde.

Alle Funktionen und alles funktioniert wie bisher erwartet, mit Ausnahme einer Sache: Ich kann den $wp_query->found_posts nicht zum Laufen bringen, nachdem ich Beiträge mit der Funktion get_posts() abgerufen habe.

Irgendwelche Hinweise, was ich stattdessen verwenden soll?

Vielen Dank!

2
Aram Boyajyan

Die WordPress-Funktion get_posts() erstellt eine eigene Instanz von WP_Query, auf die nicht global zugegriffen werden kann:

function get_posts($args = null) {
    // ... cut ...
    $get_posts = new WP_Query;
    return $get_posts->query($r);
}

also könntest du es stattdessen versuchen

 $results = get_posts($args);
 echo count($results);

um Ihnen die Array-Anzahl der von get_posts() zurückgegebenen Post-Objekte zu geben.

Beispiel für die Verwendung der Klasse WP_Query ():

Sie können die Klasse WP_Query() auch direkt verwenden.

Hier ist ein Beispiel, wie Sie es verwenden können:

<?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();?>    

Am Ende verwenden wir wp_reset_postdata(), um das globale $post-Objekt wiederherzustellen, da wir es über die the_post()-Methode ändern.

Referenz:

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

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

5
birgire