2010-07-26 58 views
0

我無法用showposts替換posts_per_page以限制列表中返回的帖子數量。當我使用showposts時,根據我在showposts限制器中指定的帖子數量正確顯示生成的菜單列表。但是,當我使用posts_per_page時,後限制號碼似乎無關緊要。結果列表顯示所有帖子,超過限制器數量。showposts VS posts_per_page。 showposts作品完美但不推薦!

例子:

這完美的作品:

$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat,-$catHidden",'showposts' => $cb2_recent_count)); 
foreach($myrecentposts as $idxrecent=>$post) { 

然而,當我在posts_per_page子,這不工作...

$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat,-$catHidden",'posts_per_page' => $cb2_recent_count)); 
foreach($myrecentposts as $idxrecent=>$post) { 

*我只是想獲取posts_per_page工作,因爲我明白showposts已被棄用。

回答

5

showpostsis已棄用。然而,posts_per_page適用於query_posts(),或者更具體地,WP_Query::query()

numberpostsget_posts()的等價參數。

注意:我刪除了有關在get_posts()內參數的錯誤處理的原始答案。

posts_per_page不是get_posts()語義原因有效參數,因爲它暗示分頁,一些東西,get_posts()不支持的想法。

爲了清楚起見,並代表@ RichardM的評論,這裏是我最初寫的皮包;


這是下降到如何get_posts()將它們傳遞到WP_Query前解析這些參數。

我已經把它切成了真正的基礎知識;

function get_posts($args = null) 
{ 
    $defaults = array('numberposts' => 5); 
    $r = wp_parse_args($args, $defaults); 

    if (!empty($r['numberposts'])) 
     $r['posts_per_page'] = $r['numberposts']; 

    $get_posts = new WP_Query; 
    return $get_posts->query($r); 
} 

查看如何numberposts覆蓋posts_per_page,不佔那個posts_per_page被傳遞的條件?

+0

所以我應該用numberposts替換showposts?並且numberposts是不是在我認爲瀕臨滅絕的名單:) – 2010-07-26 13:43:50

+0

謝謝DM,工作就像一個魅力! – 2010-07-26 13:54:49

+0

我認爲你的原始答案是有用的,編輯似乎有點模糊了這個問題。據我所知,沒有什麼能夠阻止你使用'get_posts'分頁,除了語義混淆。 – 2010-07-26 14:42:39

相關問題