这是我在自定义作者页面上自定义分页的另一个故事。我想在那里显示作者的头像、描述、网站和一些附加字段,当然还要列出他的帖子并分页。。。。
以下是我的自定义作者页面的屏幕截图:
正如你所看到的,一切似乎都井然有序。现在,问题是分页。我使用代码Kreisi (Pagination w/o using plugins). 我所做的是创建一个自定义循环并将其调用到Kreisi的函数。
代码如下:
$uid = $curauth->ID;
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$authloop = new WP_Query("author=$uid&paged=$paged");
$ppp = 5; //set my custom number of post to appear
$args = array(
\'post_per_page\' => $ppp,
\'author\' => $uid,
\'paged\' => $paged
);
$authorposts = get_posts($args);
if ( count( $authorposts ) > 0 ) {
foreach ( $authorposts as $post ): setup_postdata($post)
?>
<li>
<?php if ( has_post_thumbnail() ) : ?>
<img src="<?php echo bloginfo(\'template_url\'); ?>/inc/scripts/timthumb.php?src=<?php echo catch_that_image(); ?>&w=40&h=40&zc=1&q=30" alt="<?php the_title(); ?>" class="authorpostimg"/>
<?php else : ?>
<img src="<?php echo bloginfo(\'template_url\'); ?>/inc/scripts/timthumb.php?src=<?php echo catch_that_image(); ?>&w=40&h=40&zc=1&q=100" alt="<?php the_title(); ?>" class="authorpostimg"/>
<?php endif; ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" class="authorpostlink"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</li>
<?php
endforeach;
wnw_authpagination($authloop->max_num_pages);
} else {
echo \'<p>No articles by this user</p>\';
}
下面是进一步理解的场景。
假设这个博客总共有30篇博文,而作者文弗朗西斯有15篇。如果您可以在我的变量上看到,我确实将post\\u per\\u page值设置为5。在Kreisi函数上,它的范围是2。(请访问他的代码链接以进一步了解)因此,必须发生的是,分页应该显示5个页面按钮
[c] [2][3][>][>]
其中[c]是当前。。。[3] [>>]是最后一页(第3页)。但我的情况是,当你在[>>]上悬停时,它会显示/page/6,我想这就是博客的总帖子数。
如果你点击3(第三页)。它仍将显示4,5和[>>],不应该显示。如下图所示:
[<;][<;][1] [2][c][4][5][>][>]
我希望您了解情况和问题。再次感谢上帝保佑!
PS:kreisi不再支持他的精彩代码了,所以我必须自己做这件事。我需要你们的帮助。非常感谢。
SO网友:Jan Fabry
您正在此处创建两个额外的循环:
$authloop = new WP_Query("author=$uid&paged=$paged");
以及:
$authorposts = get_posts( array(
\'post_per_page\' => $ppp, // Shouldn\'t this be postS_per_page?
\'author\' => $uid,
\'paged\' => $paged
) );
您使用
$authloop
获取总页数,但不指定
posts_per_page
因此它将在那里采用默认值,该值可能与您在实际使用的post循环中指定的5不同。
其次,大多数情况下,使用带有分页的自定义循环是个坏主意。问题是WordPress总是会为您执行查询(以设置主循环),并且需要paged
URL中的参数。假设您在作者档案中。默认值posts_per_page
是10。这位作者有40篇帖子。您的自定义循环每页仅显示5篇文章。如果您现在在第5页,WordPress将查询41-50篇文章,而不是像您在自定义循环中那样查询21-25篇文章。WordPress将找不到帖子并加载404.php
模板而不是您的author.php
样板
因此,最好不要执行自定义循环,而是通过pre_get_posts
或者另一个钩子。