$ wp_query-current_post se reinicia desde cero en las páginas paginadas

2

Sé cómo realizar un seguimiento del 'índice' de la publicación actual cuando se ejecuta el bucle utilizando

$wp_query->current_post

Bu esto reinicia el conteo desde cero en las páginas paginadas subsiguientes. Entonces, si tengo 20 publicaciones y muestro 5 publicaciones por página, en la página 2 las publicaciones se numeran nuevamente de 0 a 4 en lugar de 5-9.

Mi pregunta es: ¿existe una forma de obtener el índice absoluto al ejecutar el bucle en una página paginada o tengo que calcular el desplazamiento yo mismo, utilizando información sobre el número de página y las publicaciones por página? >     

pregunta mikkelbreum 10.07.2011 - 22:23

2 respuestas

3

$wp_query->current_post contiene información sobre la publicación actual en bucle, no un conjunto global de publicaciones. La numeración de publicaciones en varias páginas no está disponible de forma nativa (que yo sepa) y probablemente sería poco confiable (por ejemplo, ¿qué sucede si la cantidad de publicaciones por página se modifica para ser desigual?)

Para la implementación específica, la creación de una numeración personalizada, según el número de página, es probablemente la única opción.

En cuanto a los stickies, puedes recuperar su cuenta con algo como count( get_option('sticky_posts') ) y ajustar tu numeración de esa forma.

    
respondido por el Rarst 27.12.2011 - 12:48
2

espero que alguien proporcione una mejor respuesta, pero por ahora estoy haciendo esto:

// We're about top start The Loop.
// Setting up a counter to keep track of the posts being processed
// We can't just use current_post as it start from zero on subsequent paged pages.

$paged_no = ($wp_query->query_vars['paged'] < 2 ) ? 0 : $wp_query->query_vars['paged'] -1 ;
$current_offset = $paged_no * $wp_query->query_vars['posts_per_page'];

y luego dentro del bucle:

$absolute_post_index = $wp_query->current_post+$current_offset+1;

Esto funciona cuando no hay publicaciones pegajosas. Si hay alguno, quedarán atascados en la primera página. Esto significa que si hay 5 publicaciones por página y una publicación fija, la primera página mostrará 6 publicaciones, y las páginas siguientes mostrarán 5 publicaciones. En ese escenario, la página uno numerará las publicaciones 0-5 y en la página dos las publicaciones se numerará del 5 al 9, porque la publicación adhesiva ya no se está considerando. Eso es un problema porque significa que el mismo índice se repetirá para la última publicación en la página 1 y la primera publicación en la página 2.

    
respondido por el mikkelbreum 10.07.2011 - 23:03

Lea otras preguntas en las etiquetas