标准化和简单的 WordPress 分页选项

Standardized and simple WordPress pagination options

我希望我的 Wordpress 分页始终包含 5 个数字。我希望它永远是:

< previous 1 2 3 4 ... 37 next >

< previous 5 6 7 8 ... 37 next >

虽然我知道有多种方法可以开发此分页以及与此主题相关的无数不同 post,但我发现大多数答案都特定于开发人员需要导航设置的方式。因此,我发现自己每次去为客户实施 WordPress 分页时经常会查找此内容。

此 post 的要点是有一个标准蓝图可供参考,可以定制和一致实施。此外,我想要简单干净的代码,同时考虑到 WordPress 编码标准。对执行此操作的任何 hacky 方式不感兴趣。

我也会将我的答案添加到此 post 中,并希望获得一些可供 WordPress 开发人员选择的不同标准化方法。

分页要求:

带有星号 (*) 的项目是可定制的

  1. 最后一页之前的一组点
  2. *4 页码在 ...
  3. 之前
  4. *1 点后页码
  5. 为简单起见,没有 CSS 或任何类型的样式,只有 PHP & minimal HTML 导航标记
  6. 没有黑客攻击

functions.php 或者如果像我一样在你的主题中使用命名空间 inc/core.php

namespace Theme_Name\Core; // only if using namespaces

...

/**
 * Archive post pagination
 */
function archive_pagination() {
    $current_page = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
    $mid_size = $current_page === 1 ? 3 : 2;

    the_posts_pagination(
        array( 'mid_size' => $mid_size )
    );
}

将其添加到 archive.phparchive-CATEGORY.php

// namespaces

use Theme_Name\Core;

<?php Core\archive_pagination(); ?>


// Regular function

/* personally I would update the function's name to themename_archive_pagination */ 
archive_pagination();