带有偏移分隔符wp_pagenavi或任何分页的WP查询

时间:2017-03-26 作者:Johann

我正在使用WP\\u Query和offset参数进行自定义循环。问题是,只要我添加偏移量,它就会中断分页,无论页码如何,都会显示相同的链接。

<?php

$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$query_args = array(
  \'post_type\' => \'notice\',
  \'posts_per_page\' => 6,
  \'offset\' => 1,
  \'paged\' => $paged
);

$the_query = new WP_Query( $query_args );
?>

<?php if ( $the_query->have_posts() ) : ?>

<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

    <h3><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h3>

<?php endwhile; ?>

  <?php wp_pagenavi( array( \'query\' => $the_query ) ); ?>

<?php endif; ?>
我尝试了以下代码:

https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination

但将此代码添加到我的主题会中断任何相关查询。

有什么想法可以让这一切顺利进行吗?

1 个回复
SO网友:jordanlenon

我也有同样的问题。

看看这是否适合您:


<?php
  $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $per_page = 9;
  $default_offset = 4;

  if ($paged == 1) {
    $offset = $default_offset;
  } else {
    $offset = (($paged - 1) * $per_page) + $default_offset;
  }

  $args = array(
    \'post_type\' => \'post\',
    \'posts_per_page\' => $per_page,
    \'order\'   => \'DESC\',
    \'offset\' => $offset,
    \'paged\' => $paged
  );

  $loop = new WP_Query($args);

  while ($loop->have_posts()) : 
    $loop->the_post();
?>
  ... HTML
<?php 
  endwhile; 
  wp_pagenavi(array(\'query\' => $loop)); wp_reset_postdata();
?>

相关推荐

在Get_the_Posts_Pagination函数中编辑分页文本

我想在链接模板中编辑screen\\u reader\\u文本。php我可以在一个主题中这样做,这样它就不会在更新时被覆盖。看起来过滤器是最好的选择,但我找不到关于使用什么过滤器的文档。这是我想从链接模板更改的代码。php: if ( $GLOBALS[\'wp_query\']->max_num_pages > 1 ) { $args = wp_parse_args( $args, array( \'mid_size\' =&