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.
źródło
$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+?$posts_per_page
będzie równy$sticky_count
, i tutaj ustawiam parametr posts_per_page na 1, i myślę, że będzie OK, ponieważ ten przypadek może być rzadki i będzie to tylko na pierwszej stronie ($sticky_count + 1
).Występuje problem, jeśli przyklejone posty znajdują się na pierwszej stronie.
Rozwiązaniem jest zmniejszenie liczby przyklejonych wpisów dla przyklejonych wpisów, które są częścią pierwszej strony.
Mam nadzieję, że to pomoże
źródło
Oczyściłem obie powyższe odpowiedzi w jedną, aby nie ładowało niepotrzebnego WP_Query, naprawia przyklejanie na pierwszej stronie, skraca czas przetwarzania informacji przy pomocy czystszego, szybszego kodu.
źródło