Me gustaría tener una sola publicación en mi página principal (siempre la última), pero dejar que funcione la paginación normal. Entonces, la página principal tiene la publicación 1, la siguiente página debe tener la publicación 2-11 (1-10 también está bien), luego 12-21 o 11-20, y así sucesivamente. Sé que puedo cambiar la cantidad de publicaciones según el contexto , pero establecer esto en "1" en la página de inicio significa que las páginas adicionales también muestran solo una publicación.
Mi principal problema es que /page/2/
funciona, pero /page/1/
siempre redirige a la página de inicio real /
. Esto significa que las publicaciones 2-10 siempre se omiten, ya que la página 2 muestra 11-20. Yo actualmente solucionar esto mediante la vinculación a mi archivo, pero esto no es lo ideal cuando se llega a los primeros puestos del año y hay un menor número de mensajes y no hay manera obvia de continuar.
fuente
is_front_page()
conis_archive()
ois_category()
, creo que puedes llegar a donde necesitas estar.Ok, tal vez esta es una forma extraña o complicada de hacer esto, pero tuve un problema similar (quería mostrar un texto de bienvenida y las tres publicaciones más recientes de una categoría específica en la página principal. Así que hice:
se ve así: http://hinek.de (la página está en alemán, lo siento)
Si este podría ser el camino para usted y necesita más información o una muestra de código para la plantilla de página, comente y editaré esta publicación.
fuente
¿Asumo que estás ejecutando Wordpress 3.0.x?
Mostrar una sola publicación (en cualquier categoría) en la página principal es fácil. Úselo
query_posts('post_per_page=1')
en suhome.php
archivo en lugar de invocarget_template_part('loop')
.Seguir los métodos de paginación normales después de eso es un poco complicado. En su
loop.php
archivo, sugiero poner<?php global $paged; ?>
antes de la<?php if (have_posts()) : ?>
declaración y usar la$paged
variable y laquery_posts()
función para modificar su consulta para que muestre las publicaciones correctas.Su
loop.php
archivo se vería así (nota: no probado):Solía
$paged - 1
simplemente porque la página 2 mostrará las publicaciones 1 - 10, y la página 3 mostrará las publicaciones 11 - 20, y así sucesivamente.fuente
paged
parámetro no romperá nada más, como elnext_posts_link
?. ¿Quizás sea mejor modificar la consulta en elpre_get_posts
gancho, para que no cree una nueva consulta? Y sí, esto es WP 3.next_posts_link
. La única forma de averiguarlo es probarlo, por supuesto.paged
parámetro en elpre_get_posts
gancho,redirect_canonical
entra y quiere reemplazar la url con el nuevopaged
parámetro. Puedo deshabilitar las redirecciones en este caso, peronext_posts_link
utiliza una$paged
variable global que se establece en el nuevo valor, pero no sé por qué código, por lo que es incorrecto.pre_get_posts
gancho, así que no puedo ser de mucha ayuda allí. Además, intente modificar la$paged
variable directamente (ej .$paged = $paged - 1)
:) si le preocupanext_posts_link()
.Esta pregunta es un poco antigua, pero para quienes la encuentren en la era moderna, nunca deben llamar a query_posts . Desde el códice de Wordpress:
En su lugar, debe usar el
pre_get_posts
gancho en functions.php de la siguiente manera:Sin embargo, tenga en cuenta que, en algunos casos (como ajustar las compensaciones de las publicaciones), el uso de un
pre_get_posts
gancho puede alterar su paginación. Arreglar esto no es muy difícil, pero es algo a tener en cuenta. Hay un ejemplo de cómo solucionar esto aquí .fuente