How to test pagination?

时间:2015-06-28 作者:LukeScotney93

我一直在从无到有地构建一个主题,所以我在网上的每一个地方都能从无到有地写作,这教会了我如何实现分页,主要是展示如何将标准的Wordpress版本变成一种风格。

我还了解到大约有3种不同的分页方式(上一页/下一页、归档页、分页符),我假设这些都需要不同的代码。

目前,我已经成功实现了上一页/下一页:Image

这是通过以下方式实现的:

<div class="postnav six columns droided-box prev clearfix">
    <h2>Previous Post</h2>
  <?php previous_post_link(\'%link\', \'%title\', FALSE); ?>
    </div>
<div class="postnav six columns droided-box next clearfix">
    <h2>Next Post</h2>
    <?php next_post_link(\'%link\', \'%title\', FALSE); ?>
</div>
我当前正在尝试将分页添加到存档中。php页面。以下是我对归档页面的内容(忽略标题部分,我已经将它们注释掉了,因为我仍在决定输入它的最佳方式)。

archive page

        <?php get_header(); ?>

    <div class="container">

      <?php get_template_part(\'dynbar\',\'main\'); ?>

      <div class="two-thirds column row droided-box droided-body droided-page">
        <?php if ( have_posts() ) : ?>
        <h1>Posts from
          <?php // single_cat_title(); ?>
        </h1>
        <?php // if ( category_description() ) : ?>
        <?php // echo category_description(); ?>
        <?php // endif; ?>
      </div>
      <?php while ( have_posts() ) : the_post(); ?>
      <div class="two-thirds column row droided-box droided-body droided-item">
        <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
          <?php the_title(); ?>
          </a></h1>
        <?php the_post_thumbnail(\'featured\'); ?>
        <?php echo excerpt(200); ?>
        <p class="top-meta">Written by
          <?php the_author_posts_link() ?>
          on
          <?php the_date(); ?>
        </p>
        <div class="post-meta">
          <p>
            <?php
      comments_popup_link( \'No comments yet\', \'1 comment\', \'% comments\', \'comments-link\', \'Comments closed\'); ?>
          </p>
        </div>
        <a class="read-more-droided" href="<?php the_permalink(); ?>">Continue Reading...</a> </div>
      <?php endwhile; else: ?>
      <p>Sorry, no posts matched your criteria.</p>
    </div>
    <?php endif; ?>

    <?php the_posts_pagination( array(
        \'mid_size\' => 2,
        \'prev_text\' => __( \'Back\', \'droided\' ),
        \'next_text\' => __( \'Onward\', \'droided\' ),
    ) ); ?>

    <?php get_footer(); ?>
这是六月档案页面的一部分,其中列出了几篇文章。现在我还没有在函数中输入任何代码。php关于分页,因为我不确定是否需要,因为它已经是wordpress的核心功能了,对吗?

是否有一个默认的归档页面截止,因为我没有在任何地方输入它,所以会中断页面。

我的主要问题是如何检查分页是否有效,以及是否需要在函数中添加任何内容。为了使归档分页工作正常,还有没有办法在切换到另一个页面之前更改归档页面要列出的帖子数量?

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

主页和所有存档页面(日期、类别、标记、分类和作者页面)使用相同的默认分页功能进行分页。这意味着,the_posts_pagination 适用于所有存档页面和主页。这些页面上唯一的区别是由主查询确定的内容。

就分页而言,所有这些页面上的分页计算都是相同的,这里没有区别,这也适用于主查询和的所有自定义实例WP_Query. WP_Query 使用以下参数计算分页

  • posts_per_page - 该值在整个站点(包括自定义查询)中保持不变。WP_Query 使用后端在“阅读设置”页面下设置的每页帖子数,计算未设置自定义值时每页要显示的帖子数(与自定义查询类似)。此默认选项可以返回为get_option( \'posts_per_page\' ). 如果需要为特定存档页或主页的主查询提供自定义值,则应使用pre_get_posts 设置此自定义值

  • offset - 要分页查询,WP_Query 使用offset 跳过一组帖子,以便根据您所在的页码显示正确的帖子。当前页码可通过返回get_query_var( \'paged\' ). 第1页将是0get_query_var( \'paged )will be equal to the page number. Just as example, if每页posts\\uis set to10, and you are viewing page 3,WP\\U查询has used an offset of20`跳过前20篇文章,正确显示第3页的21-30篇文章

  • $found_posts - 此属性包含找到的帖子数量WP_Query 与查询匹配。默认情况下,WP_Query 在db找到查询的帖子数量后,不会停止搜索。它将在整个数据库中继续,并统计与当前查询匹配的所有帖子。所以,如果你有10 每页帖子,WP_Query 将仅返回10 在查询中发布,但一旦10 职位已填补。它继续统计与查询匹配的帖子,因此如果100 与当前查询匹配的帖子,值为$found_posts 将是100. 您可以通过回显$wp_query->found_posts

    上述所有内容均用于计算$max_num_pages 的属性WP_Query 对象这是分页函数使用的重要值,如the_posts_pagination 显示正确的页数以及何时显示分页链接。如果值为1, 分页链接不会显示,这些链接仅在值大于时显示1. 默认情况下,主查询对象值传递给这些分页函数。您可以通过回显$wp_query->max_num_pages.

    您可以在存档页面(或任何页面)上执行以下操作,以显示页面数量、每页的帖子设置以及我们所在的页面

    $ppp = get_option( \'posts_per_page\' );
    $page_number = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1
    $total_pages = $wp_query->max_num_pages;
    $show_pagination = get_query_var( \'paged\' ) ? \'show\' : \'not show\';
    
    echo \'My posts_per_page setting for this page is \' . $ppp . \' with an amount of \' . $total_pages . \' pages of posts. According to this, my pagination function should \' . $show_pagination . \'. Do not forget, I am currently viewing page \' . $page_number . \'.\';
    

结束

相关推荐

Pagination on Single Post

我想在我的单曲上设置分页。php文件,以便正确使用无限滚动函数。我知道分页可以放在一个帖子上,但我需要做一个。php页面可以在URL上附加一个变量。我的意思是,如果我有这个URL:http://www.example.com/post_URL/ 我需要它像这样工作:http://www.example.com/post_URL/page/2/ 它需要像这样工作,因为我在主页/主博客页面上有一个无限滚动条,它选择的是get\\u query\\u var(\'page\')变量,它似乎不