2010-10-06 58 views
6

這是基本的循環WordPress的環秀限制的職位

<?php while (have_posts()) : the_post(); ?>

我要顯示的搜索結果頁面上的20個職位,我知道我們可以改變管理面板選項的值。但它會改變所有索引頁面和存檔頁面等。我需要改變它們。

謝謝!

回答

8

大參考:http://codex.wordpress.org/The_Loop

調用while語句只是之前,你需要查詢的帖子。所以:

<?php query_posts('posts_per_page=20'); ?> 

    <?php while (have_posts()) : the_post(); ?> 
    <!-- Do stuff... --> 
    <?php endwhile;?> 

編輯:很抱歉的分頁,試試這個:

<?php 
     global $query_string; 
     query_posts ('posts_per_page=20'); 
     if (have_posts()) : while (have_posts()) : the_post(); 
    ?> 
    <!-- Do stuff --> 
    <?php endwhile; ?> 

    <!-- pagination links go here --> 

    <? endif; ?> 
+0

這是偉大的!效果很好。謝謝! – ray 2010-10-06 19:00:37

+1

看起來分頁將不再起作用!任何想法? – ray 2010-10-06 19:31:07

+2

將'posts_per_page'改爲'showposts'? – Gipetto 2010-10-06 20:31:44

0

您可以通過$ wp_query對象限制每個循環的職位數目。 它需要多個參數,例如:

<?php 
$args = array('posts_per_page' => 2, 'post_type' => 'type of post goes here'); 
$query = new WP_Query($args); 
while($query->have_posts()) : $query->the_post(); 
<!-- DO stuff here--> 
?> 

更多wp_query對象 here->

0

增加 '分頁'=> $分頁分頁會的工作!

<?php 
$args = array('posts_per_page' => 2, 'paged' => $paged); 
$query = new WP_Query($args); 
while($query->have_posts()) : $query->the_post(); 
<!-- DO stuff here--> 
?> 
1

答案裏面模板創建新的查詢不會使用自定義文章類型正常工作。

documentation提供給勾上的任何查詢,檢查其主查詢,並在執行前對其進行修改。這可以在模板功能內完成:

function my_post_queries($query) { 
    // do not alter the query on wp-admin pages and only alter it if it's the main query 
    if (!is_admin() && $query->is_main_query()) { 
    // alter the query for the home and category pages 
    if(is_home()){ 
     $query->set('posts_per_page', 3); 
    } 

    if(is_category()){ 
     $query->set('posts_per_page', 3); 
    } 
    } 
} 
add_action('pre_get_posts', 'my_post_queries'); 
0

我發現這個解決方案,它適用於我。

global $wp_query; 
$args = array_merge($wp_query->query_vars, ['posts_per_page' => 20 ]); 
query_posts($args); 

if(have_posts()){ 
    while(have_posts()) { 
    the_post(); 
    //Your code here ... 
    } 
}