WP_query y paginación?

17 oct 2011, 13:51:34
Vistas: 16K
Votos: 0

Tengo que obtener algunos custom post types y necesito hacerlo con WP_Query (query_posts no funciona).

¿Cómo puedo hacer la paginación? Lo que he intentado no funciona... cualquier ayuda sería genial, no puedo resolverlo solo...

$args = array(
'tax_query' => array(
   'posts_per_page' => 5,
    array(
    'author' => $user_id,
        'taxonomy' => 'custom_taxtype',
        'field' => 'slug',
        'terms' => 'delicious-food',
    )
) 
); 
$answer_query = new WP_Query( $args );

//// Recorrer los resultados

while ( $answer_query->have_posts() ) : $answer_query->the_post();

//// hacer algo

endwhile;
4
Comentarios

Agrega el argumento paged => 1,2...n, y creo que posts_per_page, así como paged deberían estar fuera del array tax_query.

soulseekah soulseekah
17 oct 2011 13:56:56

Gracias, sí, acabo de hacer esto, ahora puedo limitar los posts. ¡Ese es un primer paso!

deltakid deltakid
17 oct 2011 14:27:51

¿Agregaste paged y lo configuraste al número de página que estás buscando?

soulseekah soulseekah
17 oct 2011 14:30:40

Lo configuré pero solo puedo seleccionar qué página quiero y no logro que la paginación funcione. Uso la función regular de WordPress next_posts_link(); para la paginación.

deltakid deltakid
17 oct 2011 14:33:00
Todas las respuestas a la pregunta 2
2

SI cambias $my_query por $wp_query debería funcionar. El código en las funciones internas de WordPress next_posts_link y previous_posts_link esperan que el objeto de consulta se llame $wp_query.

13 mar 2013 16:18:10
Comentarios

Al hacer esto también afectas la consulta principal lo que puede resultar en consecuencias no deseadas. ¿Puedes editar la respuesta para explicar cómo evitar ese problema? Además, es mejor publicar código que funcione de manera plausible en la respuesta.

s_ha_dum s_ha_dum
13 mar 2013 16:40:10

¡guau.. qué gran consejo!

Stavros Stavros
28 oct 2021 22:58:02
4

Si nos puedes decir exactamente lo que estás intentando lograr, ¡podremos ayudarte mejor!

<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array(
               'post_type' => 'question',
               'posts_per_page' => -1,
               'paged' => $paged,
               'author' => $user_id
            );
$my_query = new WP_Query($args);

if($my_query->have_posts()):
    while($my_query->have_posts()):$my_query->the_post();
        //Aquí va el bucle...
    endwhile;
    //soporte para el plugin page-navi, por favor consulta readme.txt para más instrucciones
    if ( function_exists('wp_pagenavi') )
    {
        wp_pagenavi();
    }
    elseif ( get_next_posts_link() || get_previous_posts_link() )
    {
        ?>
        <div class="wp-navigation clearfix">
            <div class="alignleft"><?php //next_posts_link('&laquo; Entradas Antiguas'); ?></div>
            <div class="alignright"><?php //previous_posts_link('Entradas Nuevas &raquo;'); ?></div>
        </div>
<?php } //if wp_pagenavi
endif;
?>

Consulta la documentación de WP_Query para más parámetros.

Por cierto, query_posts también funciona con posts personalizados, ya que acepta todos los parámetros que puedes pasar a WP_Query.

17 oct 2011 14:07:18
Comentarios

Gracias Ruwick. Solo quiero obtener todas las publicaciones de un formato de publicación personalizado llamado preguntas y este formato de publicación personalizado tiene diferentes categorías que se definen como términos personalizados. Con la consulta anterior puedo obtener las publicaciones más recientes para un término personalizado específico, pero no puedo hacer que funcione la paginación.

deltakid deltakid
17 oct 2011 14:28:54

¿Has instalado WP-Pagenavi? Me salté esa parte, revisa el nuevo código en mi respuesta. He agregado la parte de paginación.

Rutwick Gangurde Rutwick Gangurde
17 oct 2011 14:35:12

¡Muchas gracias! Sí, ahora funciona. Modifiqué un poco el código y utilicé el código de layotte que está más abajo ahora. http://wordpress.org/support/topic/adding-pagination-to-a-wp_query-loop?replies=16

deltakid deltakid
17 oct 2011 14:45:32

¡Buen trabajo, amigo! :)

Rutwick Gangurde Rutwick Gangurde
17 oct 2011 14:46:45