Thay đổi $wp_query->posts_per_page
trong mẫu với một trường hợp mới của WP_Query
không làm việc vì số trang bạn yêu cầu đã được xác nhận đối với $wp_query->max_num_pages
bởi WordPress trước khi mẫu được thực hiện. Do trang được yêu cầu nhiều hơn giá trị này cho truy vấn chính, mẫu 404.php
được phân phát thay thế và mã của bạn trong mẫu home.php
thậm chí không được thực thi.
Bí quyết là lấy $wp_query->max_num_pages
để khớp với số trang tối đa thực sự bằng cách thao tác truy vấn chính để sử dụng đối số tùy chỉnh của bạn, trước khi truy vấn chính được thực hiện. $wp_query->posts_per_page
và $wp_query->found_posts
sau đó sẽ khớp với kết quả của bạn, dẫn đến một số $wp_query->max_num_pages
cũng vậy.
Cách tốt nhất, theo ý kiến của tôi, là chỉnh sửa các đối số truy vấn chính trước khi truy vấn chính nhận được các bài đăng của nó. Ví dụ, bạn có thể thêm dòng sau vào functions.php của theme của bạn:
function custom_main_query($query){
if(is_admin()) return;
if(!$query->is_main_query()) return;
if(is_home()) $query->set('posts_per_page', 3);
}
add_action('pre_get_posts', 'custom_main_query');
này sau đó sẽ có nghĩa là một vòng lặp tiêu chuẩn sẽ làm việc ra các hộp quá:
// Standard loop
while (have_posts()) : the_post();
the_title();
endwhile;
// Navigation links
previous_posts_link('Newer Entries');
next_posts_link('Older Entries');
Nếu bạn chỉ thao tác số số bài đăng trên mỗi trang, có thể tốt hơn là thay đổi các bài đăng mặc định trên mỗi trang bằng cách truy cập Options => Reading
trong quản trị viên WordPress và đặt Blog pages show at most
thành 3 ở đây thay thế.
Nguồn
2017-10-07 03:02:39
Bạn đang cố gắng thực hiện điều này trên trang chủ tĩnh hoặc trang lưu trữ? (Có vẻ như một trang lưu trữ, nhưng tôi chỉ muốn xác nhận). Nó là một trang lưu trữ của nó, nếu nó cho bài viết hoặc bài viết tùy chỉnh? – FluffyKitten
Xin lỗi tôi đã đề cập đến điều đó. Mã này thuộc về mẫu "home.php", quản lý trang "Tin tức" mà tôi đã tạo trong trang tổng quan và đặt làm "Trang bài đăng" trong "Cài đặt đọc". Đó là cho các bài viết thường xuyên của WP. – drake035