支持Bootstrap 4和网格内容显示的WordPress分页

时间:2016-10-17 作者:Dai Bui

我是wordpress的新手,有麻烦需要你的帮助。

我编写了一个函数来以网格样式显示最近的帖子,但分页有问题。当我单击第2页或第3页时,url会更改,但内容不会更改。

这是我的显示代码

<?
  global $wp_query;
  $args=array(
     \'post_type\' => \'post\',
     \'post_status\' => \'publish\',
     \'posts_per_page\' => 20
    );

  $my_query = null;
  $my_query = new WP_Query($args);

  if( $my_query->have_posts() ) {

    $i = 0;
    while ($my_query->have_posts()) : $my_query->the_post();
  // modified to work with 3 columns
  // output an open <div>
  if($i % 4 == 0) { ?> 

这是我的分页函数

function bootstrap_four_get_posts_pagination( $args = \'\' ) {
全球$wp_查询$分页=“”;

如果($GLOBALS[\'wp\\u query\']->max\\u num\\u pages>1):

$defaults = array(
  \'total\'     => isset( $wp_query->max_num_pages ) ? $wp_query->max_num_pages : 1,
  \'current\'   => get_query_var( \'paged\' ) ? intval( get_query_var( \'paged\' ) ) : 1,
  \'type\'      => \'array\',
  \'prev_text\' => \'&laquo;\',
  \'next_text\' => \'&raquo;\',
);

$params = wp_parse_args( $args, $defaults );

$paginate = paginate_links( $params );

if( $paginate ) :
  $pagination .= "<ul class=\'pagination\'>";
  foreach( $paginate as $page ) :
    if( strpos( $page, \'current\' ) ) :
      $pagination .= "<li class=\'active\'>$page</li>";
    else :
      $pagination .= "<li>$page</li>";
    endif;
  endforeach;
  $pagination .= "</ul>";
endif;
endif;

返回$分页;}

我坚持了两天,也许你们中的一些人可以帮助我。

非常感谢。

1 个回复
最合适的回答,由SO网友:bagpipper 整理而成

这是因为您必须更改查询,还必须添加

\'paged\' => get_query_var( \'paged\' )

因此,您的新查询应该如下所示

 $args=array(
 \'post_type\' => \'post\',
 \'paged\' => get_query_var( \'paged\' ),// add this line 
 \'post_status\' => \'publish\',
 \'posts_per_page\' => 20
);
有关信息,请查看WP_QUERY Class

相关推荐

change pagination url

目前,我的分页页面URL为:http://www.example.com/category_name/page/2但我需要将此URL结构更改为:http://www.example.com/category_name/?page=2等有什么解决方案吗?