【发布时间】:2014-01-05 04:47:42
【问题描述】:
我为自定义分类创建了一个分页的术语列表,但分页显示不正确。不管我每页设置多少帖子,只输出两页。
所以有 6 个帖子并设置为每页 6 个,我看到两页,第二页是空白的。每页有 6 个帖子和 2 个帖子,我看到两页,没有第三页(我尝试在 url 栏中输入 /page/3/ 并且找不到该页面,所以这不仅仅是分页按钮的问题但似乎是 Wordpress 输出的页数有问题)。
谁能明白为什么会这样?如何让分页正常工作?
如果有人可以建议一种使此分页正常工作的方法,我已经为这个问题添加了赏金。
19/12 更新:
我是解决这个问题的一部分。我发现部分问题似乎与 WP 中的阅读设置有关。我将阅读设置设置为每页 6 个,这就是为什么无论我在模板文件中的 $posts_per_page 中设置什么,我都只能得到 2 页的输出。
现在,如果我确保阅读设置与模板文件中设置的数字相匹配,我可以让 Wordpress 输出所有页面和分页链接,但我总是从 for 循环中获得额外的输出,导致 div 为空.这在某些情况下会导致额外的页面,具体取决于最后一页上的帖子数量。我在最后一页上也没有分页链接。
archive-prints.php 的代码摘录:
$posts_per_page = 6;
$page = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$offset = ( $page - 1 );
$categories = get_terms('prints_cat');
for( $i = $offset * $posts_per_page; $i < ( $offset + 1 ) * $posts_per_page; $i++ ) {
$category = $categories[$i];
echo '<div class="cat-preview"><a href="';
echo get_term_link($category->slug, 'prints_cat');
echo '"><h2>';
echo $category->name;
echo '</h2></a></div>';
}
unset( $category );
custom_page_navi();
我的 custom_page_navi() 函数的代码,来自我的 functions.php 文件:
function custom_page_navi() {
global $wp_query;
$bignum = 999999999;
if ( $wp_query->max_num_pages <= 1 )
return;
echo '<nav class="pagination">';
echo paginate_links( array(
'base' => str_replace( $bignum, '%#%', esc_url( get_pagenum_link($bignum) ) ),
'format' => '',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_text' => 'Prev',
'next_text' => 'Next',
'type' => 'list',
'show_all' => false,
'end_size' => 2,
'mid_size' => 0
) );
echo '</nav>';
}
【问题讨论】:
-
您在哪里添加代码,您是否添加了带有自定义模板的页面?还是您添加了
taxonomy-{taxonomy}.php文件? -
我已经编辑了上面的问题以澄清。我正在使用自定义帖子类型的存档模板 -
archive-{taxonomy}.php。
标签: wordpress pagination custom-taxonomy