我有一个自定义查询…
<?php
/**
* The loop that displays the posts.
*/
?>
<ul class="post-items">
<?php
$args = array(
\'post_type\' => array(\'post\', \'wr_raffle\'),
\'posts_per_page\' => 4,
\'order\' => \'DESC\',
\'paged\' => (get_query_var(\'page\')) ? get_query_var(\'page\') : 1,
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
在这个文件的底部我有这个…
?>
</ul>
<div class="pagination wrapper clear">
<?php
$endsize = $midsize = 1;
$type = \'plain\';
$loop->query_vars[\'paged\'] > 1 ? $current = $loop->query_vars[\'paged\'] : $current = 1;
// Sanitize input argument values
if ( ! in_array( $type, array( \'plain\', \'list\', \'array\' ) ) ) $type = \'plain\';
$endsize = (int) $endsize;
$midsize = (int) $midsize;
// Setup argument array for paginate_links()
$pagination = array(
//\'base\' => @add_query_arg(\'paged\',\'%#%\'),
\'format\' => \'?page=%#%#blog\',
\'total\' => $loop->max_num_pages,
\'current\' => $current,
\'show_all\' => false,
\'end_size\' => $endsize,
\'mid_size\' => $midsize,
\'type\' => $type,
\'prev_next\' => false,
//\'paged\' => $loop->query_vars[\'paged\']
);
echo paginate_links( $pagination );
?>
</div>
嗯,我已经读了很多关于这方面的文章,但不明白为什么我的分页“几乎”有效。
我的分页在每个页面上都有效,只要我导航回第1页,分页链接就不起作用。
–在我点击第二页之前:http://cl.ly/TNHx
–单击第二页后:http://cl.ly/TN3o (因此第1页显然没有href)
你知道为什么我的第一页链接不起作用吗?
你好Matt
最合适的回答,由SO网友:s_ha_dum 整理而成
paginate_links
如果使用默认设置,则在某些(许多)情况下无法正常工作base
. 如果您查看生成的源代码,您可以看到正在发生的情况:如果您位于除第一页以外的任何页面上,使用默认基--%_%
-- paginate_links
将打印空href=\'\'
返回到第一页的链接。当然,浏览器会将其解释为“此页面”,因此指向第一页的链接不起作用。我认为这很像一个bug。
要绕过它,请通过base
参数如下:\'base\' => site_url(\'%_%\'),
, 或\'base\' => get_permalink().\'%_%\',
. 上下文关系到你选择哪个,所以要小心。