it-swarm-vi.tech

Hiển thị, trong số các trang này.

Trong Cài đặt đọc, có nơi đặt số lượng bài đăng được hiển thị ảnh hưởng đến số lượng bài đăng được hiển thị trong tất cả các ngữ cảnh. Thay vào đó, tôi muốn hiển thị một số bài đăng nhất định trên trang chủ và một số bài đăng khác trên các trang như lưu trữ, kết quả tìm kiếm, v.v.

reading-settings-blog-pages-show-at-most-per-page

Tôi nhận ra rằng tôi có thể làm điều này bằng cách chỉnh sửa các tệp chủ đề và thay đổi các tham số truy vấn ở đó, nhưng tôi muốn truy cập dễ dàng hơn vào một trang cài đặt đơn giản. Cách đây rất lâu, tôi đã bắt gặp một plugin đã làm điều này, nhưng tôi không thể tìm thấy nó ngay bây giờ.

Có ai biết một plugin để làm điều này, hoặc thậm chí là một chức năng mà tôi có thể đặt trong hàm.php để thực hiện điều tương tự không?

21
Doug

Tôi tin rằng cách tốt nhất để làm điều này trong một plugin là chạy chức năng mẫu sau đây khi gặp móc hành động pre_get_posts. Đối tượng $wp_query có sẵn, nghĩa là các thẻ điều kiện của bạn có sẵn, nhưng trước khi WordPress có các bài đăng, điều đó có nghĩa là bạn đang thay đổi các vars truy vấn trước khi truy vấn đầu tiên được chạy, thay vì thêm một truy vấn thứ hai như khi query_posts () được sử dụng trong tập tin chủ đề.

function custom_posts_per_page($query) {
    if (is_home()) {
        $query->set('posts_per_page', 8);
    }
    if (is_search()) {
        $query->set('posts_per_page', -1);
    }
    if (is_archive()) {
        $query->set('posts_per_page', 25);
    } //endif
} //function

//this adds the function above to the 'pre_get_posts' action     
add_action('pre_get_posts', 'custom_posts_per_page');
23
kevtrout

bạn có thể thực hiện một vòng lặp tùy chỉnh bằng query_posts và chỉ định số lượng bài đăng của is_home, is_archive, v.v.

chỉ là một câu lệnh if đơn giản cùng với query_posts

0
chrismccoy