舉例
我新創一個$wp_query
$wp_query = null;
$wp_query = new WP_Query();
$showposts = 2;
$args = array(
'post_type' => 'news_post',
'posts_per_page' => $showposts,
'paged' => $paged
);
query_posts($args);
然後在下面執行迴圈
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//肚傷心
<?php endwhile ?>
<?php endif ?>
再來<?php native_pagenavi(); ?>//分頁導覽
但是我在基本後台管理設定 每頁出現9篇
而我這裡想要每頁出現2篇
我這個news_post只有4篇數量
開始出現bug了
第一頁會2篇 也有2分頁 很棒
但是按到第2頁時 出現404
後來搞很久才發現
wp會預設用台數量來使用
也就是第2頁時 他會2x9=18
但我並沒有18個品項我只有4個阿 於是就出現404
所以在國外找到解決辦法
http://wordpress.stackexchange.com/questions/7687/pagination-with-wp-query-is-buggy-working-for-some-pages-but-not-the-others
在function.php加入底下code
add_action( 'pre_get_posts', 'wpse7687_pre_get_posts' );
function wpse7687_pre_get_posts( &$wp_query ) {
if ($wp_query->query_vars['category_name'] == 'latest-news'){
$wp_query->query_vars['posts_per_page'] = 4;
}
}
他們是這麼說的
wp會有預設的query,因此可以直接更改或替換query
所以上面的code就是
"當你下的$wp_query的category_name是'latest-news'時 就會自動替換成每頁4個"
沒有留言:
張貼留言