Programación

Foro WordPress » WordPress » Programación

WP Pagenavi en page.php (17 mensajes)

Acerca de este hilo

Tags

  1. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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.

    Tengo la duda que da título a este hilo.

    He creado una página en concreto en la que quiero mostrar los post de las categorías con ID 5 y 4.

    Para ello he generado la siguiente consulta:

    <ul>
    < ?php query_posts('cat=4,5') ? >

    < ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ? >

        < li class="post" >
        < div class="titulo" >
        < h2 >< ?php the_title(); ? > < i >< ?php the_time('j \d\e\ F \d\e\ Y '); ? >< /i >< /h2 >
        < /div >< !-- fin div .titulo -- >

        < div class="entrada" >
        < ?php the_content(); ? >
        < /div >< !-- fin div .entrada -- >

        < ?php comments_number("0", "1", "%"); ? > comentarios
        < p class="categoria" >Publicado en < ?php the_category(', '); ? >< /p >

        < ?php endwhile; else: ? >
        < p >< ?php _e('Sorry, no posts matched your criteria.'); ? >< /p >
        < ?php endif; ? >
    </ul>

        < ?php wp_pagenavi(); ? >
        < ?php if(function_exists(‘wp_pagenavi’)) { wp_pagenavi(); } ? >

    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.

    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.

    La pregunta es: ¿qué debo añadir para que WP Pagenavi me funcione correctamente también en el archivo page.php

    Un saludo y muchas gracias

  2. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    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.

  3. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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

    < ?php next_posts_link("Siguiente"); ? >
    < ?php previous_posts_link("Anterior"); ? >

    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

  4. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    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"

  5. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 1 año
    #

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

    Es decir,

    <?php wp_pagenavi(); ?>
    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

    ¿No sobra la primera?

    Saludos

  6. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

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

  7. fliberty

    5.0
    Antiguedad: Oct 2009
    Mensajes: 1.511

    offline

    Publicado hace 1 año
    #

    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.

    Visítenme:
    http://www.contigoperu.com.pe (hosting/dominios) | http://www.pachakamaq.com (temática variada) | http://www.mipycs.com (image hosting gratuito) | http://www.contigoperusemanario.org(noticias) | http://www.contigoperuclasificados.com (clasificados gratis) | http://www.cyberdocentes.com (recursos educativos)
  8. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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

  9. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    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"); ?>

  10. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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.

  11. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    De nada, xeme.

    Por favor, marca el hilo como resuelto.

  12. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 1 año
    #

    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 codex. Es decir, quedaría así:

    <?php $page = (get_query_var('page')) ? get_query_var('page') : 1;
    query_posts("cat=4,5&paged=$page"); ?>

    Un saludo

  13. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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 codex. Es decir, quedaría así:

    <?php $page = (get_query_var('page')) ? get_query_var('page') : 1;
    query_posts("cat=4,5&paged=$page"); ?>

    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:

    < ?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("cat=4,5&amp;paged=$paged"); ? >

    Gracias

  14. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 1 año
    #

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

  15. xeme

    3.0
    Antiguedad: Mar 2011
    Mensajes: 11

    offline

    Publicado hace 1 año
    #

    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

  16. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 1 año
    #

    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

  17. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    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.

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Programación