【问题标题】:Pagination on search query not formatting properly WP搜索查询的分页格式不正确 WP
【发布时间】:2018-10-23 05:54:11
【问题描述】:

我在下面的分页代码中似乎想出了如何从分页的第一个链接中省略 /page/1/ ,例如 'base' => get_pagenum_link(1) 。 '%_%',在新闻帖子和存档页面等上。但是现在在搜索查询http://url.com/?s=query 上,下一个分页最终会像这样 ?s=querypage2 而不是 /page/2/?s=query 以前的样子.

如何在查询前移动 page/2/ 的搜索查询中获取它?谢谢

function vb_pagination( $query=null ) {
  global $wp_query;
  $query = $query ? $query : $wp_query;
  $big = 999999999;
   $paginate = paginate_links( array(
    //'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ),
    'base' => get_pagenum_link(1) . '%_%',
    'type' => 'array',
    'total' => $query->max_num_pages,
    'current' => max( 1, get_query_var('paged') ),
    'prev_text' => __('«'),
    'next_text' => __('»'),   
     )
  );
  if ($query->max_num_pages > 1) :
  ?>
  <nav>
  <ul class="pagination">
  <?php
  foreach ( $paginate as $page ){
      echo '<li>' . $page . '</li>';
   }
  ?>
  </ul>
  </nav>
  <?php
     endif;
}

【问题讨论】:

    标签: wordpress search pagination


    【解决方案1】:

    似乎已经通过添加条件base得出了答案

    function vb_pagination( $query=null ) {
      global $wp_query;
      $query = $query ? $query : $wp_query;
      $big = 999999999;
      $searchQ = str_replace( home_url(), '', '%_%' . get_pagenum_link(1));  
      $postsPagesBase = get_pagenum_link(1) . '%_%';
      if(!is_search()){
      $paginate = paginate_links( array(
      'base' => $postsPagesBase,
      'type' => 'array',
      'total' => $query->max_num_pages,
      'current' => max( 1, get_query_var('paged') ),
      'prev_text' => __('&laquo;'),
      'next_text' => __('&raquo;'),   
       )
     );
    } else {
    $paginate = paginate_links( array(
      'base' => $searchQ,
      'format' => '/page/%#%',
      'type' => 'array',
      'total' => $query->max_num_pages,
      'current' => max( 1, get_query_var('paged') ),
      'prev_text' => __('&laquo;'),
      'next_text' => __('&raquo;'),   
      )
    );
    }
    if ($query->max_num_pages > 1) :
      ?>
      <nav>
      <ul class="pagination">
      <?php
      foreach ( $paginate as $page ){
          echo '<li>' . $page . '</li>';
       }
      ?>
      </ul>
      </nav>
      <?php
         endif;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 2019-05-12
      • 1970-01-01
      • 2011-12-25
      相关资源
      最近更新 更多