分页-发布首页内容

时间:2017-08-24 作者:Phil

我早些时候发布了这个问题的一个版本,但在深入挖掘之后,我意识到模板部分与我最初的想法有点不同。我在这里也阅读了类似的问题,但我正在使用的代码的结构与其他示例不太一致。

我使用的主题是定制的,而不是对现有主题的修订。它是由一家机构建造的,我最终在合同结束时采用了它。

ISSUE

我们网站的新闻部分生成一个包含帖子摘录和缩略图的页面。页面底部是分页,链接到额外的帖子页面。问题是,当点击第二页帖子的链接时,URL变为/page/2/page/3 但显示的内容始终与第1页相同。

UPDATE

安东能够帮助在索引上进行分页,但它在另一个模板——作业上再次出现。我已经包含了job-list.php 下页。我认为这将是一个类似的修复,但由于模板列出的项目不同,我不知道如何处理它。

模板中的帖子页面为index.php 我已经包括了下面的代码。非常感谢您对资源的任何帮助或指导!

job-list.php

  <?php
  global $wp_query;
  $temp_query_holder = $wp_query;
  $job_args = array(\'post_type\' => \'site_job\');
  $wp_query = new WP_Query($job_args);

  if(have_posts()){ ?>
    <div class="job-group">
      <?php

      while(have_posts()){
        the_post();

        set_query_var(\'included_post\', $post);
        set_query_var(\'last_post\', ($wp_query->current_post == $wp_query->post_count - 1));
        get_template_part(\'template-parts/short\', get_post_type());
      } ?>

    </div>

    <?php the_pagination();
  }
  else {
    get_template_part(\'template-parts/content\', \'none\');
  } ?>

index.php

<?php

get_header();
$page_id = get_option(\'page_for_posts\');
?>

<div class="header-image-wrapper">
  <?php echo SITEPages::header_image_for_page($page_id); ?>
</div>

<section class="primary news-list list-page">
  <?php get_template_part(\'template-parts/breadcrumbs\'); ?>
  <h1 class="page-title"><?php echo get_the_title($page_id); ?></h1>

  <?php $featured_post = get_field(\'featured_news_post\', $page_id);

  if(!empty($featured_post)){
    set_query_var(\'included_post\', $featured_post);
    get_template_part(\'template-parts/short-post-featured\');
  } ?>

  <div class="post-list">
    <?php
    $news_query = new WP_Query(array(
      \'post__not_in\' => array($featured_post->ID)
    ));

    if($news_query->have_posts()){
      foreach($news_query->posts as $i => $news_post){
        set_query_var(\'included_post\', $news_post);
        set_query_var(\'last_post\', ($news_query->current_post == $news_query->post_count - 1));
        get_template_part(\'template-parts/short-post\');
      }

      the_pagination();
    }

    else {
      get_template_part(\'template-parts/content\', \'none\');
    } ?>
  </div>
</section>

<?php
get_sidebar();
get_footer();

pagination.php

<?php
$pagination = get_the_posts_pagination(array(
  \'prev_next\' => false,
  \'end_size\' => 1,
  \'before_page_number\' => \'<span class="page-descriptor">Page </span>\'
));

if(!empty($pagination)){ ?>
  <div class="pagination-container">
    <span class="prev">
      <?php previous_posts_link(\'<span class="icon-chevron-left" data-grunticon-embed></span>\'); ?>
    </span>

    <?php
      echo $pagination;
    ?>
    <span class="next">
      <?php next_posts_link(\'<span class="icon-chevron-right" data-grunticon-embed></span>\'); ?>
    </span>
  </div>
<?php } ?>

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

尝试更新index.php 具有新WP\\U查询参数的模板paged.

代码应为:

<?php
    $paged = isset(get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

    $news_query = new WP_Query(array(
      \'post__not_in\' => array($featured_post->ID),
      \'paged\' => $paged
    ));
中的更多信息codex

结束

相关推荐

Pagination in Archives

你好,我是wordpress的新手,我很烂。我试图在wordpress中为我的博客页面添加编号分页。我下载了插件“page navi”,进入编辑器并更改了索引中的一个文件。php收件人: <?php if ( $wp_query->max_num_pages > 1 ) : ?> <div class=\"post-nav archive-nav\"> <?php wp_pagenavi();