Tôi đang sử dụng pre_get_posts
để điều chỉnh số lượng bài đăng được hiển thị trên trang chủ của mình.
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Nhưng tôi đang gặp vấn đề với bài viết dính. Về cơ bản, nếu tôi có bất kỳ bài đăng dính nào, truy vấn sẽ hiển thị nhiều hơn 12 bài đăng tôi đã chỉ định, bởi vì nó sẽ hiển thị 12 bài cộng với bất kỳ bài đăng dính nào. Tất nhiên, tôi có thể bỏ qua các bài viết dính:
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' );
Nhưng tôi không nghĩ rằng điều này là lý tưởng. Tôi nghĩ rằng các bài viết dính nên được bao gồm trong giới hạn của 12 bài viết, và không được thêm vào giới hạn. Đó là những gì có ý nghĩa nhất đối với tôi. Có cách nào để đạt được điều đó? Tôi đã thực hiện một lỗi đáng mặt?
Khá nhiều bản sao của: Bài viết dính & Bài viết trên mỗi trang nhưng đã bị đóng một cách kỳ lạ vì quá cục bộ. Tôi không đồng ý, rõ ràng vì tôi đang tìm kiếm một câu trả lời, nhưng cũng vì đó là câu hỏi tại sao WordPress dường như không tôn trọng posts_per_page
giới hạn nếu bạn đang sử dụng các bài đăng dính. Nếu bạn muốn 12 bài đăng trên mỗi trang, bạn sẽ nhận được 12, không phải 13, đó là những gì bạn sẽ nhận được nếu bạn có một bài đăng dính.
$sticky_count + (12 - $sticky_count)
để12- $sticky_count
mặc dù. Ví dụ: nếu tôi có 1 dính, thì toán của bạn vẫn hoạt động đến 12, và sau đó WP thêm bài dính để thực hiện 13. Ồ, và nếuif ($sticky_count > $posts_per_page)
và chúng tôi đặt thành 12, điều đó có nghĩa là chúng tôi sẽ hiển thị 24+ chứ?