Página de arquivo … limitando mensagens por página

Então, o que eu fiz é criar um tipo de postagem personalizado “depoimentos” e definir a opção “tem arquivo” como “verdadeiro” e ter um arquivo de modelo PHP chamado “archive-testimonials.php”.

O que eu não quero fazer é limitar o número de postagens que são exibidas para apenas 5 com uma opção posterior e posterior para voltar e encaminhar para o próximo 5. Soa bastante fácil, mas por algum motivo não consigo fazer isso funcionar.

Aqui está o meu loop que me mostra todas as 17 postagens testimoniais:

 'testimonials', 'posts_per_page' => -1 ) ); ?> have_posts() ) : $loop->the_post(); ?> 

A única maneira de mostrar todos eles em vez de apenas 10 é com ‘posts_per_page’ => -1. E mesmo sem essa “posts_per_page”, apenas mostrará 10 das 17 postagens.

Agora tentei:

  'testimonials', 'posts_per_page' => 5 ) ); ?>  •  have_posts() ) : $loop->the_post(); ?> 

Posso mostrar apenas cinco, mas não tenho paginação para o próximo 5. Acabei de abrir “depoimentos / página / 2 /” e mostra os mesmos cinco que a página anterior.

O que estou fazendo de errado. Qualquer ajuda é muito apreciada.

obrigado

Solutions Collecting From Web of "Página de arquivo … limitando mensagens por página"

Não crie uma nova consulta e loop apenas para alterar postagens por página. Adicione uma function enganchada a pre_get_posts e altere os parâmetros que deseja lá antes da consulta ser executada. Isso iria no arquivo functions.php do seu tema ou em um plugin.

 function wpd_testimonials_query( $query ){ if( ! is_admin() && $query->is_post_type_archive( 'testimonials' ) && $query->is_main_query() ){ $query->set( 'posts_per_page', 5 ); } } add_action( 'pre_get_posts', 'wpd_testimonials_query' ); 

Então, no modelo, você executa o loop normal e a paginação funciona como esperado.