WP Pagenavi en page.php

Inicio Foros WordPress Programación WP Pagenavi en page.php

Este debate contiene 16 respuestas, tiene 4 mensajes y lo actualizó  almendron hace 7 años, 2 meses.

  • Autor
    Publicaciones
  • #20818

    xeme
    Participante

    <p>Hola a tod@s! Este es mi primer post, aunq no soy nuevo en este foro, llevo algún tiempo siguiendo los hilos sobre las dudas que me han ido surgiendo a medida que iba profundizando en el mundo del wordpress.</p>
    <p>Tengo la duda que da título a este hilo.</p>
    <p>He creado una página en concreto en la que quiero mostrar los post de las categorías con ID 5 y 4.</p>
    <p>Para ello he generado la siguiente consulta:</p>
    <p>

    </p>
    <p>He comprobado que la consulta está bien, ya que me muestra efectivamente los post de dichas categorías, pero el problema viene con la paginación.</p>
    <p>La paginación muestra el número de páginas correctas (en mi caso 2 páginas, ya que hay 11 post), pero cuando le doy al número 2 no avanza. En la dirección web si que pone /page/2/ pero se siguen mostrando los primeros 10 post.</p>
    <p>La pregunta es: ¿qué debo añadir para que WP Pagenavi me funcione correctamente también en el archivo page.php</p>
    <p>Un saludo y muchas gracias
    </p>

  • #50959

    almendron
    Participante

    Puede que no sea un problema de PageNavi sino de la consulta que, al pasar a otra página, ya no se realiza y por eso sale en blanco.

    Prueba lo siguiente:

    1) Para cada post extrae la ID de la categoría.

    2) Si la ID es igual a 5 o a 6, entonces muestra el post.

    La duda que tengo con este método es si PageNavi calculará bien el número de páginas.

    O prueba a indicar el número de post a mostrar en cada página (“posts_per_page”). Si pones “-1”, se muestran todos.

  • #50961

    xeme
    Participante

    Puede que no sea un problema de PageNavi sino de la consulta que, al pasar a otra página, ya no se realiza y por eso sale en blanco.
    Prueba lo siguiente:
    1) Para cada post extrae la ID de la categoría.
    2) Si la ID es igual a 5 o a 6, entonces muestra el post.
    La duda que tengo con este método es si PageNavi calculará bien el número de páginas.
    O prueba a indicar el número de post a mostrar en cada página (“posts_per_page”). Si pones “-1”, se muestran todos.

    No sale nada en blanco, se muestra un listado con los post de las categorías filtradas y se muestra la paginación. Lo único que no funciona correctamente es al pinchar en [2], sigue mostrando los resultados de [1]

    También me pasa con la paginación básica de wordpress

    La pregunta que me viene a la cabeza es: ¿se puede utilizar page.php para mostrar post de determinadas categorías como estoy tratando de hacer, o realmente es una barbaridad?

    ¿Alguna sugerencia?

    Gracias

  • #50963

    almendron
    Participante

    Antes de hablar sobre lo de mostrar posts de determinadas categorías, creo que debería solucionar lo de la paginación. El hecho de que “next_posts_link” y “previous_posts_link” no funcionen correctamente indica que hay algún problema.

    1) Dime qué tema usas e intentaré echarle un vistazo.

    2) Si tienes algún plugin de caché, lo desactivas.

    3) Desactiva el plugin PageNavi y comprueba si funcionan bien “next_posts_link” y “previous_posts_link”

  • #50969

    LGrusin
    Miembro

    ¿Por qué hay dos wp_pagenavi() en el código?

    Es decir,

    ¿No sobra la primera?

    Saludos

  • #50970

    almendron
    Participante

    xeme: LGrusin tiene razón. Sobra la primera.

  • #50971

    imported_fliberty
    Participante

    Ahi hay dos errores una llamada a la función pagenavi duplicada y el otro error al hacer la consulta: < ?php query_posts(‘cat=4,5’) ? >, tienes que agregar &paged=paged después del 5.

  • #50972

    xeme
    Participante

    Muchas gracias a todos por contestar, pero sigo sin conseguirlo. Algo debo estar haciendo mal pero no se el que.

    Vamos por partes:
    – El tema que estoy utilizando es uno que he diseñado yo y que estoy adaptando a wordpress, es decir, no es ningún theme ni template descargado y posteriormente adaptado a mi gusto, no, se trata de un diseño mio particular que estoy intentando que funcione bajo wordpress.

    – Si quito <?php wp_pagenavi(); ?> de la paginación directamente ni se muestra.

    – Agrego &paged=paged después del 5 y no me hace ni caso, sigue sin funcionar.

    Para empezar, ¿qué consulta ejecutarías en page.php para que se muestren SÓLO los post de las categorías 4 y 5 de mi blog? (este punto lo consigo, pero admito mejoras por supuesto). Y para continuar, una vez que tengo los post de las categorías que quiero, ¿que hago para que funcione la paginación?

    ¿Alguien lo ha hecho? Esto empieza a ser desesperante jejeje

    Un saludo y muchísimas gracias a todos de verdad. Un abrazo

  • #50976

    almendron
    Participante

    Por lo que veo, creo que no te funciona la segunda por las comillas que encierran el primer wp_pagenavi. La forma correcta es

    ‘wp_pagenavi’ y no ‘wp_pagenavi’ (fíjate en las comillas).

    Para la paginación, prueba lo siguiente:

    <?php $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
    query_posts(“cat=4,5&paged=$paged”); ?>

  • #50980

    xeme
    Participante

    Por lo que veo, creo que no te funciona la segunda por las comillas que encierran el primer wp_pagenavi. La forma correcta es
    ‘wp_pagenavi’ y no ‘wp_pagenavi’ (fíjate en las comillas).
    Para la paginación, prueba lo siguiente:
    <?php $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
    query_posts(“cat=4,5&paged=$paged”); ?>

    Ya funciona!!!!! Estupendo!!! Muchísimas gracias.

  • #50981

    almendron
    Participante

    De nada, xeme.

    Por favor, marca el hilo como resuelto.

  • #50982

    LGrusin
    Miembro

    OJO que a partir de la versión 3.0.2 se sustituye paged por page en la llamada a la función get_query_var() según el [url=http://codex.wordpress.org/Function_Reference/WP_Query#Pagination_Parameters][b]codex[/b][/url]. Es decir, quedaría así:

    Un saludo

  • #50985

    xeme
    Participante

    OJO que a partir de la versión 3.0.2 se sustituye paged por page en la llamada a la función get_query_var() según el [url=http://codex.wordpress.org/Function_Reference/WP_Query#Pagination_Parameters][b]codex[/b][/url]. Es decir, quedaría así:

    Un saludo

    Poniéndolo de la forma que comentas no me funciona, vuelvo a lo de antes.

    La única forma de que me funcione es poniendo:

    Gracias

  • #50989

    LGrusin
    Miembro

    Te lo digo por si tienes una versión antigua de WordPress y actualizas para que lo tengas en cuenta.

  • #50991

    xeme
    Participante

    Te lo digo por si tienes una versión antigua de WordPress y actualizas para que lo tengas en cuenta.

    La versión con la que estoy trabajando es WordPress 3.1. y me funciona bien conforme yo lo tengo puesto.

    Un saludo

  • #51006

    LGrusin
    Miembro

    Exacto, la que funciona es la que has puesto. La verdad es que no sé por qué hay esas diferencias. Existen ejemplos tanto de un código como del otro. Para volver loco a uno…

    El texto integro en inglés es:
    Pagination Note: You should set get_query_var( ‘page’ ); if you want your query to work with pagination. Since WordPress 3.0.2, you do get_query_var( ‘page’ ) instead of get_query_var( ‘paged’ ). The pagination parameter ‘paged’ for WP_Query() remains the same.

    Igual lo estoy entendiendo al revés.

    Saludos

  • #51012

    almendron
    Participante

    LGrusin: yo lo entiendo también como tú. Y la verdad, ni idea de por qué le funciona la forma que se supone es para versiones anteriores a 3.0.2.

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest