Używam pre_get_posts
do dostosowania liczby postów wyświetlanych na mojej stronie głównej.
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Ale mam problem z lepkimi postami. Zasadniczo, jeśli mam jakieś przyklejone posty, zapytanie wyświetli więcej niż 12 określonych przeze mnie postów, ponieważ wyświetli 12 plus wszelkie przyklejone posty. Mógłbym oczywiście zignorować przyklejone posty:
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' );
Ale nie sądzę, że to jest idealne. Myślę, że lepkie posty powinny być uwzględnione w limicie 12 postów, a nie dodane do limitu. To jest dla mnie najbardziej sensowne. Czy istnieje sposób na osiągnięcie tego? Czy popełniłem błąd godny twarzy?
Prawie duplikat: Przyklejone posty i posty na stronę, ale było to dziwnie zamknięte, ponieważ zbyt zlokalizowane. Nie zgadzam się, oczywiście dlatego, że szukam odpowiedzi, ale także dlatego, że wydaje się, że WordPress nie przestrzega posts_per_page
limitu, jeśli używasz lepkich postów. Jeśli chcesz 12 postów na stronę, powinieneś dostać 12, a nie 13, co byś otrzymał, gdybyś miał jeden przyklejony post.
$sticky_count + (12 - $sticky_count)
, aby12- $sticky_count
chociaż. Na przykład, jeśli mam 1 lepką, to twoja matematyka nadal działa na 12, a następnie WP dodaje lepką pocztę, aby uzyskać 13. Och, a jeśliif ($sticky_count > $posts_per_page)
i ustawimy na 12, czy to nie znaczy, że pokażemy 24+?