Bens livres permalgantes em pagas personalizadas no loop de tipo de publicação personalizado

Devo ser irritante com todas essas questões de permalink 🙂

O código que estou usando para o loop é:

// hijack stupid WP globals to get pagination working... global $wp_query; $temp = $wp_query; $paged = get_query_var('paged') ? get_query_var('paged') : 1; $wp_query = new WP_Query(); $wp_query->query(array( 'post_parent' => get_the_ID(), 'post_type' => 'topic-reply', 'posts_per_page' => 10, 'order' => 'ASC', 'paged' => $paged, )); if($wp_query): wp_pagenavi(); while ($wp_query->have_posts()): $wp_query->the_post(); get_template_part('topic-reply'); endwhile; wp_pagenavi(); endif; $wp_query = $temp; wp_reset_query(); 

A paginação funciona bem se os permalinks estiverem configurados para padrões, ao clicar na página 2, o link que eu recebo é como:

http://localhost/wp/?topic=sometopictitle&paged=2

O problema vem quando eu configurei os permalinks para uma estrutura personalizada; Ao clicar na página 2, recebo o primeiro URL da página:

http://localhost/wp3/forum/general-discussion/topic/sometopictitle/

ao invés de

http://localhost/wp3/forum/general-discussion/topic/sometopictitle/page/2/

(Um exemplo vivo here )

Alguém conhece as regras que devo adicionar para configurar permalinks paginados para o tipo de postagem “tópico-resposta”?

Solutions Collecting From Web of "Bens livres permalgantes em pagas personalizadas no loop de tipo de publicação personalizado"

Quando você usa paged em uma única publicação, está procurando uma postagem paginada, não páginas de postagens. Como seus tópicos não têm conteúdo paginado, está assumindo que é um erro e redirecionamento para a “primeira” página do tópico, muito antes de seu loop personalizado ser tocado. Então, neste caso, o paged sempre retornará como 1. Como uma solução, eu registraria um EP Permalink para o tópico. Algo assim:

 add_rewrite_endpoint( 'tpage', EP_PERMALINK ); 

Em seguida, em vez de verificar se get_query_var( 'paged' ); , verifique se get_query_var( 'tpage' ); e passar o valor para isso junto com a consulta personalizada. Configurar esse ponto final de reescrita significa que todos os permalinks compatíveis com a máscara de bits EP_PERMALINK (seus tópicos são compatíveis) aceitarão uma estrutura /tpage/XXXX adicionada ao final da url, onde XXXXX pode ser qualquer coisa que você quiser (neste caso, Quero digitar isso como um número inteiro, provavelmente um absoluto nisso).

EDITAR

Algo assim deve funcionar para obter uma série de links paginados:

 $links = paginate_links(array( 'base' => trailingslashit( get_permalink( $temp->post->ID ) ) . '%_%', 'format' => 'tpage/%#%', 'type' => 'array' )); 

A partir daí, você poderia fazer algo como isto:

  

Tenho certeza de que você obterá os mesmos estilos e o estilo “atual” para os links.