我的代码是
我在循环之前编写了这段代码用于分页
$arrangement = get_cat_ID('arrangement');
$antiquarianism = get_cat_ID('antiquarianism');
$paged = (get_query_var('page')) ? get_query_var('page') : 1;
print_r($paged);
$query = query_posts(array(
'page' => intval($paged),
'category__not_in' => array($arrangement, $antiquarianism ) ));
每次打印1。
答案 0 :(得分:2)
您是否尝试过$paged
的var_dump?或按照此处的建议重置get_query_var('page')
:worpress support
答案 1 :(得分:1)
之前我遇到过类似的问题。不幸的是,这可能是很多事情。
一种可能性是处理与Wordpress“循环”相关的页面查询。我刚刚阅读了query_posts的文档并发现了这个:
保留原始查询(分页等) 默认情况下,运行query_posts将完全覆盖当前页面上的所有现有查询变量。分页,类别日期等将丢失,只会使用您传递给query_posts的变量。
如果要保留原始查询,可以将原始查询数组合并到参数数组中:
global $wp_query;
query_posts(
array_merge(
array( 'cat' => 1 ),
$wp_query->query
)
);
http://codex.wordpress.org/Function_Reference/query_posts
我不确定这是否会影响你,但值得拍摄。
编辑:你也可以尝试在'循环'关闭后(即在主结束之后)运行一个单独的get_post循环。这在过去解决了我的问题
<?php
// custom pagination improvements
//http://codex.wordpress.org/Template_Tags/get_posts
$lastposts = get_posts('numberposts=50&order=DESC&orderby=ID');
setup_postdata($lastposts);
$valid_posts = array ();
$lastposts = (array) $lastposts;
foreach ($lastposts as $post) {
$post = (array) $post;
// Sort through arrays here - get the next valid post
switch (true) {
case ($post['post_status'] == 'publish' && $post['ID'] < $curr_pid[0]):
array_push($valid_posts, $post);
break;
default:
break;
}
}
$nextArray = $valid_posts[0];
?>
<ul class="pagination">
<li class="next"><a href="<?php echo(get_permalink($nextArray['ID'])); ?>"><?php echo ($nextArray['post_title']); ?></a></li>
</ul>
这是我为首页编写的一些代码,因此它只显示“下一步”,然后根据我的过滤器链接到下一篇文章(而不是Wordpress认为应该接下来的内容)。您当然可以使用foreach循环回显多个带数字的链接。这会使事情变得复杂一点,但它可以让你非常精细地控制分页中发生的事情。
这对你有帮助吗?