我在本地主机模板中使用wordpress下面的代码进行分页,但不知道为什么它不起作用。它显示所有页面编号很好,但任何页码我点击它只显示第一页。
global $wp_query;
$total_pages = $wp_query->max_num_pages;
if ($total_pages > 1){
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '/page/%#%',
'current' => $current_page,
'total' => $total_pages,
));
}
我的永久链接设置是:
本地主机/我的-博客/采样后/
和查询帖子:
$ args = array('post_type'=>'post','posts_per_page'=> 2);
任何人都请告诉我下一步要做什么分页。
答案 0 :(得分:1)
<global $wp_query;
$total = $wp_query->max_num_pages;
// only bother with the rest if we have more than 1 page!
if ( $total > 1 ) {
// get the current page
if ( !$current_page = get_query_var('paged') )
$current_page = 1;
// structure of "format" depends on whether we're using pretty permalinks
$format = empty( get_option('permalink_structure') ) ? '&page=%#%' : 'page/%#%/';
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => $format,
'current' => $current_page,
'total' => $total,
'mid_size' => 4,
'type' => 'list'
));
}
请根据要求设置参数,并参考此链接My helps you
如果您遇到问题,请告诉我
谢谢和问候
答案 1 :(得分:1)
这适用于WP_Query。你可以尝试一下:
global $wp_query;
$big = 999999999; // Need an unlikely integer
echo paginate_links( array( 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $wp_query->max_num_pages,
'end_size'=> 1,
'mid_size'=> 10 ) );
在Settings -> Readings
将Blog pages show at most
设置为您希望在每个页面中显示的帖子数量,并在Settings -> Discussion
中设置分页行为
答案 2 :(得分:0)
我通过使用简单的PHP读取URL参数来解决相同的问题,而不是使用get_query_var('paged'),只需使用以下方法即可:
$_GET['paged']