2012-08-17 35 views
21

Tôi phải gắn các bài viết blog theo cách thủ công, nhưng tôi không chắc đây có phải là cách làm việc đúng hay không. Nó chỉ mang đến 9 trang, mỗi bài 4 bài, nhưng blog có 83 bài viết!get_posts không trả lại tất cả các bài viết

<?php 
    $paged = get_query_var('paged'); 
    $args = array(
     'numberposts'  => 4, 
     'offset'   => $paged*4, 
     'orderby'   => 'post_date', 
     'order'    => 'DESC', 
     'post_type'   => 'post', 
     'post_status'  => 'publish', 
     'suppress_filters' => true 
    ); 
    $posts_array = get_posts($args); 
?> 

Thanks anyway.

+0

Kiểm tra kỹ tất cả 83 bài đăng của bạn được "xuất bản". – Libin

+0

có tất cả chúng được xuất bản, nhưng tôi nhận thấy rằng nó chỉ mang đến các bài đăng có 'không có danh mục', làm cách nào tôi có thể nhận được tất cả các bài đăng bao gồm các danh mục khác? –

Trả lời

71

Vấn đề là 'numberposts' của bạn được đặt 4 Đặt nó ở -1 để có được tất cả các bài viết:

'numberposts'  => -1, 

Nếu bạn không đặt numberposts đây, WordPress sẽ kéo số lượng bài viết từ bạn Cài đặt trang tổng quan (trong Cài đặt -> Đọc)

+3

người đàn ông ... bạn tiết kiệm ngày của tôi .. cảm ơn .. bằng cách tôi không đặt số lượng .. nhưng nó có giá trị mặc định từ WP vì vậy tôi đặt nó -1 để lực lượng WP có được nó –

+0

Điều này vẫn làm việc? – Niels

+0

Đã lưu ngày của tôi +1 ... – Si8

5

Ghi chú bên dưới là từ số codex section này.

Lưu ý: Với việc sử dụng bù đắp, các truy vấn trên nên được sử dụng chỉ trên một loại rằng có nhiều hơn một bài trong đó, nếu không sẽ không có đầu ra.

Vì vậy, để hiển thị tất cả các bài đăng, phải có ít nhất 2 bài đăng trong mỗi danh mục.

Bạn có thể thử Loops để nhận tất cả bài đăng. Kiểm tra The Loop in Action.

Các vấn đề liên quan