0

我在下面的代码中使用了 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);

任何人请告诉我下一步该做什么来处理这个分页。

4

3 回答 3

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'
     ));
}

请根据要求设置一个参数,并参考这个链接我的帮助你

如果您遇到问题,请告诉我

谢谢并恭祝安康

于 2013-01-01T06:18:29.767 回答
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设置分页行为

于 2013-01-01T07:29:18.410 回答
0

我通过使用直接 PHP 读取 URL 参数解决了同样的问题,而不是 get_query_var('paged'),只需使用这个:

$_GET['paged']
于 2018-12-26T22:13:46.237 回答