En una situación en la que uno tiene 20 publicaciones por página. Me gustaría obtener el número de página actual para hacer algunos enlaces de página agradables en la parte inferior. ¿Cómo se obtiene la página actual? Probé esto
Cuando WordPress usa la paginación de esta manera, hay una variable de consulta $pagedque activa. Entonces la página 1 es $paged=1y la página 15 es $paged=15.
Puede obtener el valor de esta variable con el siguiente código:
Obtener el número total de páginas es un poco más complicado. Primero tienes que contar todas las publicaciones en la base de datos. Luego, filtra por qué publicaciones se publican (frente a cuáles son borradores, programados, basura, etc.). Luego debe dividir este recuento por la cantidad de publicaciones que espera que aparezcan en cada página:
Esa es una buena alternativa. Parte de lo $wp_queryque olvidé por completo estaba allí: - /
EAMann
@EAMann BTW: también existe la found_postspropiedad "El número total de publicaciones encontradas que coinciden con los parámetros de consulta actuales", wp_count_posts () es una especie de sobrecarga.
jave.web
8
Puede hacerlo con una sola línea de código, pero nuevamente, es posible que desee agregar el código en otros lugares, por lo que una función suele ser más útil.
NOTA: El código puede ir a su archivo de funciones.
Simplemente llame a la función donde desea mostrar el mensaje "Página x de y", por ejemplo.
<?php current_paged();?>
Si necesita el código para trabajar con una consulta personalizada, es decir. uno que haya creado usando WP_Query, luego simplemente pase el nombre de la variable que contiene la consulta a la función.
Una opción que funciona en todas mis páginas de archivo es esta:
$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;if( $paged_maxnum >1){
$paged_current_page = get_query_var('paged')? intval( get_query_var('paged')):1;
$title_page_nrs ='page nr '. $paged_current_page .' of '. $paged_maxnum;
echo '<title>'. get_the_archive_title('',false).' - '. $title_page_nrs .' | Your Website Name</title>';}else{
echo '<title>'. get_the_archive_title('',false).' | Your Website Name</title>';}
Primero consulte si hay más de una página en esto wp_query, luego concatene el título con la página actual vía $paged_current_pagey el total de páginas con $title_page_nrs. Finalmente echoella. Si es superior a 1 página primero, luego elsesi no está paginado. Esto va a mi archivo.php o plantillas para este tipo. Produce:
<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
$wp_query->max_num_pages
?$wp_query
que olvidé por completo estaba allí: - /found_posts
propiedad "El número total de publicaciones encontradas que coinciden con los parámetros de consulta actuales", wp_count_posts () es una especie de sobrecarga.Puede hacerlo con una sola línea de código, pero nuevamente, es posible que desee agregar el código en otros lugares, por lo que una función suele ser más útil.
NOTA: El código puede ir a su archivo de funciones.
Simplemente llame a la función donde desea mostrar el mensaje "Página x de y", por ejemplo.
Si necesita el código para trabajar con una consulta personalizada, es decir. uno que haya creado usando
WP_Query
, luego simplemente pase el nombre de la variable que contiene la consulta a la función.Ejemplo de consulta no existente:
Obtener la página actual para la consulta personalizada utilizando la función publicada anteriormente.
Si desea olvidarse por completo del soporte de consultas personalizadas y está buscando una respuesta, entonces esto debería hacerlo.
Espero que ayude.. :)
fuente
$var
es una consulta:if( is_a( $var, 'WP_Query' ) )
devolverá verdadero si se trata de un objeto de consulta.Como se mencionó anteriormente, una forma más simple de obtener el número máximo de páginas es con:
fuente
Una opción que funciona en todas mis páginas de archivo es esta:
Primero consulte si hay más de una página en esto
wp_query
, luego concatene el título con la página actual vía$paged_current_page
y el total de páginas con$title_page_nrs
. Finalmenteecho
ella. Si es superior a 1 página primero, luegoelse
si no está paginado. Esto va a mi archivo.php o plantillas para este tipo. Produce:<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
o
<title>Taxonomy title | Your Website Name</title>
fuente