【问题标题】:Standardized and simple WordPress pagination options标准化和简单的 WordPress 分页选项
【发布时间】:2020-11-06 15:31:36
【问题描述】:

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

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

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

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

这篇文章的重点是要有一个可以定制和一致实施的标准蓝图来参考。此外,我想要简单而干净的代码,并考虑到 WordPress 编码标准。对这样做的任何骇人听闻的方式都不感兴趣。

我也会在这篇文章中添加我的答案,并希望获得一些不同的标准化方法可供 WordPress 开发人员选择。

分页要求:

带有星号 (*) 的项目可以自定义

  1. 最后一页前的一组点
  2. *... 之前的 4 个页码
  3. *1 个点后的页码
  4. 为简单起见,没有任何 CSS 或样式,只有 PHP 和 minimal 导航的 HTML 标记
  5. 没有破解

【问题讨论】:

  • 请查看How do I ask a good question 和此Question Checklist 以了解问题应包含哪些内容,以便适合本网站。这不是编码或辅导服务。问题应该是关于一个特定编码相关的问题,并包括该问题的清晰概述、您已经尝试过的内容的摘要以及minimal,reproducible example中的相关代码。
  • 我觉得你的评论是个人意见 - 我问了一个相当基本的问题,并有明确的期望,看看其他开发人员是如何实现这一点的。我发现与该主题相关的帖子数不胜数,并且认为拥有一个基本答案对任何 wp 开发人员都有帮助。

标签: php wordpress pagination standardized


【解决方案1】:

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(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 2015-02-25
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2015-08-22
    • 2021-03-27
    • 1970-01-01
    相关资源
    最近更新 更多