Eu gostaria de ter uma única postagem na minha primeira página (sempre a mais recente), mas deixe a paginação normal funcionar. Portanto, a primeira página tem a postagem 1, a próxima página deve ter a mensagem 2-11 (1-10 também está bem), depois 12-21 ou 11-20, e assim por diante. Sei que posso alterar o número de postagens, dependendo do contexto , mas defini-lo como "1" na página inicial significa que as páginas adicionais também mostrarão apenas um post.
Meu principal problema é que /page/2/
isso funciona, mas /page/1/
sempre redireciona para a página inicial real /
. Isso significa que as postagens 2 a 10 são sempre ignoradas, pois a página 2 mostra 11-20. I atualmente resolver isso ligando para o meu arquivo, mas isso não é ideal quando você vem para os primeiros posts do ano e há menos mensagens e nenhuma maneira óbvia de continuar.
fonte
is_front_page()
poris_archive()
ouis_category()
, acho que pode chegar onde precisa.Ok, talvez essa seja uma maneira estranha ou complicada de fazer isso, mas eu tive um problema semelhante (eu queria exibir um texto de boas-vindas e os três posts mais recentes de uma categoria específica na primeira página.
fica assim: http://hinek.de (a página está em alemão, desculpe)
Se esse pode ser o caminho para você e você precisar de mais informações ou de um exemplo de código para o modelo de página, comente e eu editarei esta postagem.
fonte
Estou supondo que você esteja executando o Wordpress 3.0.x?
É fácil mostrar apenas uma postagem (em qualquer categoria) na primeira página. Use
query_posts('post_per_page=1')
no seuhome.php
arquivo em vez de chamarget_template_part('loop')
.Seguir os métodos normais de paginação depois disso é um pouco complicado. No seu
loop.php
arquivo, sugiro colocar<?php global $paged; ?>
antes da<?php if (have_posts()) : ?>
instrução e usar a$paged
variável e aquery_posts()
função para modificar sua consulta para que ela mostre as postagens corretas.Seu
loop.php
arquivo seria algo parecido com isto (nota: não testado):Eu usei
$paged - 1
simplesmente porque a página 2 mostrará as postagens 1 a 10 e a página 3 mostrará as postagens 11 a 20, e assim por diante.fonte
paged
parâmetro não interrompe mais nada, como onext_posts_link
?. Talvez seja melhor modificar a consulta nopre_get_posts
gancho, para não criar uma nova consulta? E sim, este é WP 3.next_posts_link
. A única maneira de descobrir é realmente tentar, é claro.paged
parâmetro nopre_get_posts
gancho,redirect_canonical
entra em ação e deseja substituir o URL pelo novopaged
parâmetro. Posso desativar os redirecionamentos nesse caso, masnext_posts_link
usa uma$paged
variável global que é definida como o novo valor, mas não sei por qual código, portanto, está incorreto.pre_get_posts
gancho, então não posso ajudar muito lá. Além disso, tente modificar a$paged
variável diretamente (ex:)$paged = $paged - 1)
se você estiver preocupadonext_posts_link()
.Essa pergunta é um pouco antiga, mas para quem a encontra na era moderna, você nunca deve chamar query_posts . Do códice do Wordpress:
Em vez disso, você deve usar o
pre_get_posts
gancho em functions.php da seguinte maneira:No entanto, lembre-se de que, em alguns casos (como ajustar compensações de postagem), usar um
pre_get_posts
gancho pode alterar sua paginação. Corrigir isso não é super difícil, mas é algo para estar ciente. Há um exemplo de como corrigir isso aqui .fonte