Soporte » Guías – Resolución de problemas » Problema 404 en la paginación al crear plantilla personalizada de categoría

  • Resuelto malgusto

    (@malgusto)


    Hola, a ver si alguien me puede ayudar porque me estoy volviendo loco.

    He creado un post type «trailer» y ahí creo fichas de trailers que añado a la categoría «trailers-de-cine», el tema es que la paginación no funciona y al intentar pasar de página me da error 404.

    Lo que yo he intentado es un querypost muy sencillo… Pero solo saca la primera página.

       global $wp_query;
       query_posts(
       array_merge(
       array(
       'post_type' => 'trailers',
       'posts_per_page' => 2),
       $wp_query->query
       )
       );

    He probado mil experimentos que he encontrado en internet pero nada, no sé si es del query o del rewrite, pero nada funciona.

    La única opción que he encontrado es crear archive-trailer.php para ese custom post type y ahí si que funciona la paginación. PEro en lo otro no sé porque no va.

    Gracias!

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • ¿Y por qué haces un query propio si WordPress ya te crea los listados paginados automáticamente?

    Si con archive-trailer.php puedes personalizar la plantilla para los listados del custom post type, en taxonomy-mytaxonomy.php puedes personalizar la plantilla para toda la taxonomía; y en taxonomy-mytaxonomy-trailers-de-cine.php puedes personalizar la plantilla solo para esa cateogría/término de la taxonomía.

    PD: Nunca debes utilizar query_posts() en una plantilla; utiliza WP_Query() o get_posts(). query_posts() afecta al query principal y al llegar a las plantillas el query principal ya se ejecutó y es fácil liarla.

    Iniciador del debate malgusto

    (@malgusto)

    Hola @cybmeta, gracias, he probado mil opciones diferentes con WP_Query, pero lo mismo, en la paginación no sé porque falla.

    Yo tengo un post_type de trailers que cuando los creo lo añado a la categoría «Trailers de cine» y después intento sacarlos por aquí, pero mira, la paginación no va… Ahora mismo está hecho por WP_Query.

    https://www.malgusto.com/trailers-de-cine/

    Por cierto, lo que dije antes que «archvive-trailers-de-cine.php» iba, pues no, no va, el mismo error 🙁 .

    Gracias por la ayuda!

    Iniciador del debate malgusto

    (@malgusto)

    Después de hacer mil millones de pruebas… Llego a la conclusión de que igual es del tema del rewrite, pero ahí ya no sé que hacer 🙁 .

    Moderador LGrusin

    (@lgrusin)

    Hay que tener en cuenta que las categorías de los posts no salen en los Custom Post Types. Si quieres poder consultar por la categoría prueba con el siguiente código:

    add_filter('pre_get_posts', 'query_post_type');
    function query_post_type($query) {
     if( is_category() ) {
      $post_type = get_query_var('post_type');
     if($post_type)
      $post_type = $post_type;
     else
      $post_type = array('nav_menu_item', 'post', 'trailer');
      $query->set('post_type',$post_type);
      return $query;
      }
    }

    Sustituye trailer por el nombre del Custom Post Type, no sé si es trailer o trailers.

    Espero que sea eso.

    Un saludo

    Iniciador del debate malgusto

    (@malgusto)

    Mil gracias, al final lo he hecho de la forma siguiente… Que es más o menos como me has dicho tú.

    1º) Creando el category-trailers-de-cine.php sin querys ni meter nada, el mismo que trae el category.php

    2º) En el function he añadido… Donde si detecta que está en la categoria de los trailers (id 3733) muestra los post types que yo quiera y además tendrás 5 post por páginas.

    add_action('pre_get_posts', function($query) {
    
          if ((is_category(3733)) ) {
            $query->set('post_type', array( 'post', 'trailers' ) );
            $query->set( 'posts_per_page', 5 );
          }
    • Esta respuesta fue modificada hace 5 años, 11 meses por malgusto.
Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • El debate ‘Problema 404 en la paginación al crear plantilla personalizada de categoría’ está cerrado a nuevas respuestas.