A paginação lança um erro 404 nas páginas do arquivo de taxonomia personalizada

4

Eu criei uma taxonomia personalizada para um tipo de postagem personalizado chamado "portfólio" da seguinte forma:

function jvs_portfolio_categories_init() {
    register_taxonomy(
        'project-category',
        'portfolio',
        array(
      'label'        => __( 'Project Categories' ),
      'query_var'    => true,
      'hierarchical' => true
        )
    );
}
add_action( 'init', 'jvs_portfolio_categories_init' );

Em seguida, adicionei uma página archives.php para poder exibir postagens nessas taxnomias. O problema é que a paginação é interrompida na segunda página. Esse é basicamente o meu loop na página de arquivos:

<?php $paged = (get_query_var('page')) ? get_query_var('page') : 1; ?>
<?php global $query_string; query_posts($query_string . '&post_type=portfolio&paged=' . $paged); ?>
<?php if (have_posts()) while (have_posts()) : the_post(); ?>
     // Stuff here
<?php endwhile; ?> 

Isso só me mostra um erro de 404 páginas quando tento ir para a segunda página, estou usando permalinks muito bonitos, mas se eu substituir manualmente o /page/2 param na url com ?page=2 ele funciona bem, embora o paginação funciona bem em qualquer outro lugar no site.

Vocês podem me ajudar? Obrigado antecipadamente!

    
por Javier Villanueva 16.03.2012 / 06:09

1 resposta

4

Esta função resolveu o problema:

function change_posttype() {
  if( is_archive() && !is_admin() ) {
    set_query_var( 'post_type', array( 'post', 'portfolio' ) );
  }
  return;
}
add_action( 'parse_query', 'change_posttype' );

Em seguida, removi a função paged e query_string do meu código e deixei o loop normal:)

    
por Javier Villanueva 16.03.2012 / 23:38