Diferentes formas de contar posts y resultados de consultas en WordPress

Con esta entrada doy paso a una nueva serie de entradas en las que seré más técnico y en las que hablaré de mi día a día desarrollando con WordPress con CODECTION pero de una forma técnica, y no hablando de ideas, negocios o eventos como hasta ahora. Esta vertiente técnica la tenía (y la sigo teniendo) en nuestro portal Linux Hispano, compartido con otros dos compañeros ajenos a CODECTION, donde me centraré más en cuestiones técnicas que no tengan que ver con WordPress para hablar en este blog sobre las que sí tengan que ver con nuestro sistema gestor de contenido favorito.

Logo Linux Hispano

Veamos, cuando desarrollo para clientes, es muy frecuente que use las consultas de WordPress estándares, las llamadas WP_Query, además de facilitarme mucho el trabajo, son eficaces, seguras y gracias a los CPT (los Custom Post Types o tipos de datos personalizados) muy versátiles.

En muchas ocasiones necesitas ver cuántos resultados ha obtenido una consulta: para calcular un total, para arreglar algún tema de paginación o para poder hacer alguna medida estadística, entre otras muchas cosas.

Veamos uno a uno, los diferentes métodos que tenemos para hacer este recuento. Doy por hecho que tenemos entre manos una consulta que ha sido ejecutada, a la que llamaré $wp_query y que estamos dentro de un entorno WordPress.

Dudas, preguntas y sugerencias, en los comentarios.

Total de entradas de la página actual

Usaríamos el siguiente código, si en lugar de entradas estamos haciendo una consulta sobre otro post_type sería sobre dicho tipo de dato personalizado:

$total_entradas_pagina_actual = $wp_query->post_count;
echo 'Hay ' . $total_entradas_pagina_actual . ' entradas en esta página';

 

Total de entradas de la consulta al completo

Si en lugar de en la página actual, queremos verlo en toda la consulta, las instrucciones serán otras. Este caso suele ser más frecuente, ya que esta operación nos puede servir en multitud de circunstancias:

$total_entradas_consulta = $wp_query->found_posts;
echo 'Hay un total de ' . $current_query_total_post_count . ' entradas en toda la consulta';

 

Lugar de la entrada actual dentro del bucle

Como en todos los bucles en informática, no sólo necesitamos saber cuántas vueltas tenemos que dar, sino en qué vuelta estamos ahora, así que, comenzando desde cero (el primer elemento será el 0) con esta instrucción obtendremos en qué entrada nos encontramos dentro de la consulta:

$entrada_actual = $wp_query->current_post + 1;
echo 'Estamos en la entrada número: ' . $wp_query->current_post;

 

Total de entradas publicadas en el sitio

Si por estadística o por curiosidad quieres saber cuántas entradas hay publicadas en el sitio, se usa una función que objeto y luego se llama a un atributo. Por defecto devuelve estadística del tipo de dato post aunque podemos modificarlo a cualquier tipo de dato pasándolo por parámetro:

$contador_entradas = wp_count_posts();
echo 'Total de entradas publicadas = ' . $contador_entradas->publish;

 

Número de entradas por página por defecto en el sitio

En WordPress podemos manejar vía “Ajustes”, “Lectura” el número de entradas por página, que por defecto habrá en el sitio, aunque en cada query podremos modificarlo. Este valor se almacena en la tabla de opciones y es:

$entradas_por_pagina_por_defecto = get_option('posts_per_page');
echo 'Entradas por página por defecto = '. $entradas_por_pagina_por_defecto;

 

Número de entradas por página en la consulta actual

Finalmente, tenemos el número de entradas por página presente en cada consulta, que podemos modificar al hacerla y que podemos consultar de esta manera.

$entradas_por_pagina_bucle_actual = $wp_query->query_vars["posts_per_page"];
echo 'Entradas por página en esta consulta = '. $entradas_por_pagina_bucle_actual;

 

Espero que os haya gustado la entrada, dudas y errores que tengáis, los vemos en los comentarios.1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)

Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

0

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito