Contar las publicaciones devueltas por get_posts en un script PHP externo

2

Estoy usando WP desde un script PHP externo al incluir el archivo wp-load.php .

Todas las funciones y todo funciona como se esperaba hasta ahora, excepto una cosa: no puedo hacer que $wp_query->found_posts funcione después de obtener las publicaciones con la función get_posts() .

¿Alguna sugerencia de qué debería estar usando?

¡Gracias!

    
pregunta Aram Boyajyan 11.05.2013 - 10:14

1 respuesta

5

La función de WordPress get_posts() está creando su propia instancia de WP_Query que no es accesible globalmente:

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

para que en su lugar puedas intentarlo

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

para darte el recuento de matriz de objetos de publicación devueltos por get_posts() .

Ejemplo de uso de clase WP_Query ():

Podría considerar usar la clase WP_Query() directamente.

Aquí hay un ejemplo de cómo puedes usarlo:

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

Usamos wp_reset_postdata() al final, para restaurar el objeto global $post , ya que lo cambiamos a través del método the_post() .

Referencia:

enlace

enlace

    
respondido por el birgire 11.05.2013 - 11:31

Lea otras preguntas en las etiquetas