Estoy usando pre_get_posts
para ajustar la cantidad de publicaciones que se muestran en mi página de inicio.
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Pero me encuentro con un problema con las publicaciones adhesivas. Básicamente, si tengo publicaciones fijas, la consulta mostrará más de las 12 publicaciones que he especificado, porque mostrará 12 más cualquier publicación fija. Podría, por supuesto, ignorar las publicaciones adhesivas:
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 1 );
set_query_var( 'ignore_sticky_posts', 1 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Pero no creo que esto sea ideal. Creo que las publicaciones fijas deberían incluirse en el límite de 12 publicaciones y no agregarse al límite. Eso es lo que tiene más sentido para mí. ¿Hay alguna manera de lograr eso? ¿He cometido un error digno de palmarse la cara?
Prácticamente un duplicado de: Publicaciones fijas y Publicaciones por página, pero eso estaba extrañamente cerrado porque estaba demasiado localizado. No estoy de acuerdo, obviamente porque estoy buscando una respuesta, pero también porque es una cuestión de por qué WordPress no parece respetar el posts_per_page
límite si está utilizando publicaciones fijas. Si desea 12 publicaciones por página, debe obtener 12, no 13, que es lo que obtendría si tuviera una sola publicación adhesiva.
fuente
$sticky_count + (12 - $sticky_count)
al12- $sticky_count
embargo. Por ejemplo, si tengo 1 adhesivo, entonces tu matemática aún funciona a 12, y luego WP agrega la publicación adhesiva para hacer 13. Ah, y siif ($sticky_count > $posts_per_page)
lo establecemos en 12, ¿eso no significa que mostraremos 24+?$posts_per_page
que será igual a$sticky_count
, y aquí configuro el parámetro posts_per_page en 1, y creo que estará bien, ya que este caso puede ser raro y solo será en la primera página ($sticky_count + 1
)Hay un problema si las publicaciones adhesivas están en la primera página.
La solución es disminuir el recuento de publicaciones fijas para las publicaciones fijas que forman parte de la primera página.
Espero que ayude
fuente
Limpié ambas respuestas anteriores en una para que no cargue WP_Query innecesario, arregle si es pegajoso en la primera página, reduzca el tiempo para procesar la información con un código más rápido y limpio.
fuente