我在这里和谷歌上做了一些搜索,但我发现的一切都不正常。我希望在这里发布我的代码,并在哪里出错得到帮助。
在我网站的索引页上,我有一篇“特色”帖子,它的布局与其他帖子不同。当你点击下一页时,那篇特色文章消失了,给我留下了不均衡的帖子数量,我需要一个均衡的帖子数量。这是我找到的代码,我试着毫不费力地实现了它。
我正在使用以下查询(计数代码和下面的所有其他查询都是相同的):
<?php
$page = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts("paged=$page&posts_per_page=10");
?>
这是我希望能够使用的代码:
<?php
$page = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$page_num = $paged;
if ($pagenum=\'\') $pagenum = 1;
if ($pagenum > 1) { $post_num = 10 } else { $post_num = 9 }
query_posts(\'showposts=\'.$post_num.\'&paged=\'.$page_num); `
?>
这与页面的其余部分相同:
<?php $count = 1; ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ((!is_paged()) && ($count == 1 )){ ?>
// FEATURED HTML HERE
<?php } else { ?>
// REGULAR HTML HERE
<?php } $count++; ?>
<?php endwhile; ?>
// PAGINATION HERE
SO网友:Johannes Pille
您在第二个片段中提出的逻辑是有道理的。尽管如此,您的代码仍存在一些问题。
首先$pagenum
变量是冗余的,您不需要它。对于另一个,您可以指定get_query_var()
到$page
然后在以下行中使用$paged
- 你希望它是一样的。应执行以下操作:
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$post_num = ($paged > 1) ? 10 : 9;
// query for posts
此外,在标记片段(问题的第三个)中,
$count
不需要,只需使用
$paged
也顺便说一句,为了完整起见,我不会使用这么多的php开始和结束标记,但这是一个品味问题,不会影响代码的功能。
还有一点:除非这是主循环,否则应该使用WP_Query
类而不是query_posts
. 如果是,使用query_posts
虽然没有那么错,但还是建议您查看pre_get_posts
改为过滤。