如何对类别列表进行分页?

时间:2012-01-27 作者:Stephen S.

我最近为我的分类添加了缩略图,这有一个副作用,那就是使它们所列的页面过长。因此,我希望对类别列表进行分页。

以下是我用来生成类别和缩略图列表(未设置样式)的内容:

<?php
 $args=array(
  \'orderby\' => \'name\',
  \'order\' => \'ASC\'
  );
$categories=get_categories(\'child_of=504&order_by=name&style=none&title_li=\');
  foreach($categories as $category) { 
  echo \'
  <a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'> \'. get_the_term_thumbnail ( $category->term_id, category, $size = \'medium\', $attr = \'\') . \' </a>
  <a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name.\'</a>\';
  } 
?>
在试图找到解决方案时,我遇到了另一个问题(How to paginate a list of tags ) 关于标签,这似乎正是我所希望的,但迄今为止还没有成功地将两者合并在一起。

任何帮助都会很好,谢谢

1 个回复
最合适的回答,由SO网友:mor7ifer 整理而成

未经测试,但这至少应该在正确的轨道上:

$posts_per_page = 50;

$page = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$offset = ( $page - 1 );

$args = array(
    \'child_of\' => 504,
    \'order_by\' => \'name\',
);
$categories = get_categories( $args );

for( $i = $offset * $posts_per_page; $i < ( $offset + 1 ) * $posts_per_page; $i++ ) {
    $category = $categories[$i];
    echo \'<a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'> \'. get_the_term_thumbnail ( $category->term_id, category, $size = \'medium\', $attr = \'\') . \' </a><a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name.\'</a>\';
}
unset( $category );
辅助分页方法
if( strpos( $_SERVER[\'REQUEST_URI\'], \'/page/\' ) !== false ) {
    $uri = explode( \'/\', $_SERVER[\'REQUEST_URI\'] );
    foreach ( $uri as $k => $v ) {
        if ( $value == "" )
            unset( $uri[$k] );
    }
    $offset = ( array_pop($uri) * $posts_per_page ) - $posts_per_page;
}
将检查URL/page/, 如果包含/page/ 它将去掉所有空值,并将偏移量设置为数组的最终值。这不是最优雅的解决方案,但它很有效,而且处理能力也很好

结束

相关推荐

Pagination throws 404

显示自定义帖子类型时,我的分页遇到一些问题。我想显示9篇文章,然后显示数字分页。这是可行的,一些链接是用(对我来说)正确的URL生成的:http://mywebsite/tutorial/page/2 或http://mywebsite/tutorial/taxonomy/page/2 但它总是在404页上完成。欢迎您提出任何想法,以下是我的代码,如果您发现任何问题:)提前谢谢。西里尔<?php $args = array( \'post_type\' =&g