首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Wordpress CPT分页错误第一页和第二页都可以,但后面的就不行了

WordPress中的自定义文章类型(Custom Post Type,简称CPT)分页错误,特别是第一页和第二页正常,但后续页面出现问题,通常是由于以下几个原因造成的:

基础概念

自定义文章类型(CPT):WordPress允许用户创建除默认的“文章”和“页面”之外的自定义文章类型,以满足更复杂的内容管理需求。

分页:分页是将大量内容分割成多个页面显示的技术,以提高用户体验和网站性能。

可能的原因

  1. 查询参数不正确:自定义查询可能没有正确设置分页参数。
  2. 缓存问题:如果启用了缓存插件,可能是缓存没有正确更新。
  3. URL结构问题:分页链接可能没有正确生成或解析。
  4. 插件或主题冲突:某些插件或主题可能与WordPress的分页功能冲突。

解决方法

方法一:检查自定义查询

确保你的自定义查询正确设置了分页参数。例如:

代码语言:txt
复制
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'post_type' => 'your_custom_post_type',
    'posts_per_page' => 10,
    'paged' => $paged
);
query_posts($args);

然后,在循环结束后调用wp_reset_query()来重置查询。

方法二:清除缓存

如果你使用了缓存插件,尝试清除缓存看看问题是否解决。

方法三:检查URL结构

确保分页链接正确生成。可以在主题的functions.php文件中添加如下代码来修复分页链接:

代码语言:txt
复制
function custom_pagenavi($query = false){
    global $wp_query;
    $pagenavi_options = array();
    $pagenavi_options['pages_text'] = ('Page %CURRENT_PAGE% of %TOTAL_PAGES%');
    $pagenavi_options['current_text'] = '%PAGE_NUMBER%';
    $pagenavi_options['page_text'] = '%PAGE_NUMBER%';
    $pagenavi_options['first_text'] = ('First');
    $pagenavi_options['last_text'] = ('Last');
    $pagenavi_options['next_text'] = ('Next');
    $pagenavi_options['prev_text'] = ('Previous');
    $pagenavi_options['dotright_text'] = '...';
    $pagenavi_options['dotleft_text'] = '...';
    $pagenavi_options['num_pages'] = 5; //continuous block of page numbers
    $pagenavi_options['always_show'] = 0;
    $pagenavi_options['num_longs'] = 1;
    $pagenavi_options['num_shorts'] = 1;
    if(!$query){$query = $wp_query;}
    $big = 999999999;
    $pages = paginate_links(array(
        'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
        'format' => '?paged=%#%',
        'current' => max(1, get_query_var('paged')),
        'total' => $query->max_num_pages,
        'prev_text' => __($pagenavi_options['prev_text']),
        'next_text' => __($pagenavi_options['next_text']),
        'type' => 'list'
    ));
    if ($pages) {
        echo '<div class="pagination">';
        echo $pages;
        echo '</div>';
    }
}

然后在你的模板文件中调用custom_pagenavi()函数。

方法四:禁用插件和主题

尝试禁用所有插件,然后逐个启用,以确定是否有插件导致问题。同样,也可以尝试切换到默认主题看看问题是否仍然存在。

应用场景

这种情况常见于博客、新闻网站或任何使用WordPress构建并需要分页功能的网站。

通过以上步骤,通常可以解决WordPress CPT分页错误的问题。如果问题依然存在,可能需要进一步检查服务器日志或寻求专业的技术支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

史上最详细的WordPress的自定义文章类型指南(1)

OOP这个话题内容就太多了,汗牛充栋,值得大书特书,我就不献丑了,本文只涉及到OOP中的两个基本概念:类和对象。简单介绍如下,知道是啥就够了。 什么是类?...插件创建Custom Post Type 插件和主题是相对独立的,所以使用插件来进行新建Custom Post Type的方式就不会依赖于主题了。其实细分来说,这类插件也可以分为几种形式。...这有助于其他主题和插件决定让用户使用什么功能 //或者提供什么数据,我们可以为该参数设置一个数组,也可以设置为 false,以防止添加任何功能,文章类型创建后,我们 //...第二种方法:PHP代码 上面说过,WordPress提供了一个函数flush_rewrite_rules可以用来刷新url规则,所以你也可以在自己的主题文章中手动执行这个函数。...使用代码的方式比较重,比较麻烦,不适合普通用户,而且我也没有这方面的需求,就不写了,感兴趣的可以看看这篇文章: 如何修改自定义文章类型的固定链接 这方面最好的插件就是 Custom Post Type

4.4K20

我自己写的一个分页控件(源码和演示代码)PostBack分页版 for vs2003、SQL Server

myPage.BindFirstPage();        //显示第一页的数据         }     第二种分页算法的属性设置。...myPage.BindFirstPage();        //显示第一页的数据         }     查询情况,点击查询按钮后需要做的事情。...这里针对sql Server 2000 进行了优化,采用两种分页算法。  第一种算法针对的是一个排序字段,且排序字段没有重复值的情况。  第二种算法针对的是多排序字段的情况。  ...//10 页以内 2秒812毫秒    //速度太慢下面的就不测试了    //分页2 非聚集索引 UnitPrice  首页 468毫秒    //10 页以内 2秒671毫秒    //速度太慢下面的就不测试了...   //分页算法2 非聚集索引 UnitPrice,ProductID  首页 500毫秒    //10 页以内 2秒796毫秒    //100页以内 4秒796毫秒    //速度太慢下面的就不测试了

1K50
  • 拓展 Django Pagination 实现完善的分页效果

    但想实现下面这样的一个比较完善的分页导航时,Django Pagination 内置的 API 已经无法满足需求。...image.png 可以看到整个分页导航条其实可以分成 七个部分: 第 1 页页码,这一页需要始终显示。 第 1 页页码后面的省略号部分。...但要注意只有如果第一页的页码号后面紧跟着页码号 2,那么省略号就不应该显示。 当前页码的左边部分,比如这里的 3-6。 当前页码。 当前页码的右边部分,比如这里的 8-11。...最后一页页码前面的省略号部分。但要注意如果最后一页的页码号前面跟着的页码号是连续的,那么省略号就不应该显示。 最后一页的页码号。...right_has_more = True if right[-1] < total_pages: last = True # 是否需要显示第一页和第一页后的省略号

    2K60

    Web 后端的一生之敌:分页器

    他继续浏览,发现第二页的第一篇文章仍然是 《Redis 缓存更新一致性》: 博客园使用的是时间倒序排列和limit..offset分页器,用 SQL 来描述就是: select * from posts...上述情况只是在浏览过程中在头部追加了新的数据,在搜索引擎这类条件很多、排序算法复杂的场景中,第一次查询和第二次查询的顺序可能完全不同,分页器也难以实现。...客户端请求第一页 10 篇文章而我们已经从数据库中读到了第 14 行,所以客户端请求第二页时 offset 应为 14。...order by id desc limit 10; 用户浏览第一页时记住最后一篇文章《Redis 缓存更新一致性》的 id=233, 在拉取第二页时只需要进行查询: select * from posts...如下面的示例代码: // 对于时间戳相同的 post 我们并不关心谁前谁后,我们只要求排序稳定 // 若 post1.CreatedAt == post2.CreatedAt,查询第一页时 post1

    17010

    我的分页控件(未完,待续)——控件件介绍及思路

    因为这样可以提高效率,不仅在分页的时候,其他的地方也会很方便。 3、 实际情况 对于一个列表页面来说,哪个页面访问率最高呢?毫无疑问是第一页。...大多数情况都是先看第一页的,所以我感觉有必要为第一页单独写一个分页算法,任意页再写一个算法,如果有必要的话最后一页也要再写一个算法。...B 一般算法 针对上面的算法的不足,可以采用这个算法,颠颠倒倒法,就是top嵌套。还有一个大名,忘记了(研究出算法后才发现的)。...使用PostBack分页的话,在按“后退”的时候会出现“警告: 网页已经过期”的错误页面。...4、 便于使用 只要知道从哪个表里提取数据,显示哪些字段,一页的记录数,排序字段,查询条件等信息就可以了。其他的都可以忽略。

    98070

    如何解决MySQL order by limit语句的分页数据重复问题?

    0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。...但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。...之所以MySQL 5.6出现了第二页数据重复的问题,是因为 priority queue 使用了堆排序的排序方法,而堆排序是一个不稳定的排序方法 也就是相同的值可能排序出来的结果和读出来的数据顺序不一致...2 解决方法 (1)索引排序字段 如果在字段添加上索引,就直接按照索引的有序性进行读取并分页,从而可以规避遇到的这个问题。 (2)正确理解分页 分页是建立在排序的基础上,进行了数量范围分割。...还有重要的一点,虽然上面的解决方法可以缓解用户的这个问题,但按照用户的理解,依然还有问题 比如,这个表插入比较频繁,用户查询的时候,在read-committed的隔离级别下,第一页和第二页仍然会有重合

    1.4K20

    小心避坑:MySQL分页时出现的数据重复问题

    0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。...但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。...之所以MySQL 5.6出现了第二页数据重复的问题,是因为 priority queue 使用了堆排序的排序方法,而堆排序是一个不稳定的排序方法,也就是相同的值可能排序出来的结果和读出来的数据顺序不一致...2 解决方法 1.索引排序字段 如果在字段添加上索引,就直接按照索引的有序性进行读取并分页,从而可以规避遇到的这个问题。 2.正确理解分页 分页是建立在排序的基础上,进行了数量范围分割。...还有重要的一点,虽然上面的解决方法可以缓解用户的这个问题,但按照用户的理解,依然还有问题:比如,这个表插入比较频繁,用户查询的时候,在read-committed的隔离级别下,第一页和第二页仍然会有重合

    1.1K10

    mysql 5.6 order by limit 排序分页数据重复问题

    10条数据,limit(10,10)表示列出第二页。...但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。...之所以MySQL 5.6出现了第二页数据重复的问题,是因为 priority queue 使用了堆排序的排序方法,而堆排序是一个不稳定的排序方法,也就是相同的值可能排序出来的结果和读出来的数据顺序不一致...2 解决方法 索引排序字段 如果在字段添加上索引,就直接按照索引的有序性进行读取并分页,从而可以规避遇到的这个问题。 正确理解分页 分页是建立在排序的基础上,进行了数量范围分割。...还有重要的一点,虽然上面的解决方法可以缓解用户的这个问题,但按照用户的理解,依然还有问题:比如,这个表插入比较频繁,用户查询的时候,在read-committed的隔离级别下,第一页和第二页仍然会有重合

    1.1K40

    老弟想自己做个微信,被我一个问题劝退了。。

    比如用户有 10 条消息记录,以 5 条为单位进行分页,刚进入房间时只会加载最新的 5 条消息: 下拉后,会加载历史的第 6 - 10 条消息: 理解了业务场景后,再看下实现方案,为什么不建议使用传统分页实现下拉加载...如果按照传统分页基于偏移量加载,第一页已经加载了第 1 - 5 行的数据,本来要查询的第二页数据是第 6 - 10 行(对应的 SQL 语句为 limit 5, 5),数据库记录如下: 结果在查询第二页前...原本的第一页,变成了当前的第二页! 这样就导致查询出的第二页数据,正好是之前已经查询出的第一页的数据,造成了消息重复加载。所以不建议采用这种方法。...每次查询完当前页面的数据后,可以将最后一条消息记录的 id 作为游标值传递给前端(客户端)。...当要加载下一页时,前端携带游标值发起查询,后端操作数据库从 id 小于当前游标值的数据开始查询,这样查询结果就不会受到新增数据的影响。

    14110

    如何解决MySQL order by limit语句的分页数据重复问题?

    0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。...但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。...之所以MySQL 5.6出现了第二页数据重复的问题,是因为 priority queue 使用了堆排序的排序方法,而堆排序是一个不稳定的排序方法 也就是相同的值可能排序出来的结果和读出来的数据顺序不一致...2 解决方法 (1)索引排序字段 如果在字段添加上索引,就直接按照索引的有序性进行读取并分页,从而可以规避遇到的这个问题。 (2)正确理解分页 分页是建立在排序的基础上,进行了数量范围分割。...还有重要的一点,虽然上面的解决方法可以缓解用户的这个问题,但按照用户的理解,依然还有问题 比如,这个表插入比较频繁,用户查询的时候,在read-committed的隔离级别下,第一页和第二页仍然会有重合

    3.1K20

    Django Pagination 完善分页

    在 Django Pagination 简单分页 中,我们实现了一个简单的分页导航效果。但效果有点差强人意,我们只能点上一页和下一页的按钮进行翻页。...比较完善的分页效果应该像下面这样,但想实现这样一种效果,Django Pagination 内置的 API 已无能为力。...image.png 分页效果概述 一个比较完善的分页效果应该具有以下特性,就像上图展示的那样,很多网站都采用了类似这种的分页导航方式。 始终显示第一页和最后一页。 当前页码高亮显示。...image.png 先来分析一下导航条的组成部分,可以看到整个分页导航条其实可以分成 七个部分: 第 1 页页码,这一页需要始终显示。 第 1 页页码后面的省略号部分。...最后一页页码前面的省略号部分。但要注意如果最后一页的页码号前面跟着的页码号是连续的,那么省略号就不应该显示。 最后一页的页码号。

    1.3K50

    Mongodb分页查询优化下

    (50) 2、ESR索引下sql分页以及执行效率【ESR方式】 db.test.find({org:"10000", signT:{ 【ESR索引翻页执行效率】 翻第二页(每页50条) "executionStats...正常是indexkey:returndoc=1:1是完美的索引.索引不能说ESR索引效率高,最好是ES效率(需要修改业务逻辑). 3、ER索引后sql执行效率【ER】 【ER索引翻页执行效率】 翻第二页...正常是indexkey:returndoc=1:1是完美的索引.如果用户想要快速获取第一页的记录或者前面几页,ESR效率要高于ER,最好是ES效率(需要修改业务逻辑). 4、修改业务代码后高效索引下...500页,执行时间从20ms到1104ms.其实500页数据才25000条,如果单页显示100条,翻500页,执行时间更长,此时还是在高效索引以及代码修改后效果.此时ES索引. 4、以上除了ES索引下从第一页到...,例如索引key扫描、回表扫描记录数、返回记录数都分析他们之间比例,1:1:1是最好性能,随着数据增长,瓶颈在索引、还是在集合中. 4、并不是所有分页、翻页SQL都可以优化到最佳性能,主要取决于

    1.8K10

    MultiRow发现之旅(七)- 套打和打印

    Flow模式 这个设置说明MulitRow将从第一页纸开始安排所有的Row,一个挨着一个从上到下排列,直到当前页面不能显示下一个Row,将重新生成一页,继续排列。...将AutoFitWidth设置为True,宽度方向将被缩小来适应纸张的宽度,请看下图,每页纸都可以容纳一个Row,这样节省了纸张: ?...比如下面的示例展示在Flow的分页模式下,当ZoomFactor为0.5时,一个页面将会布置更多的Row: ? 4....有时候,你希望只在第一页显示公司名称,后面的页面只显示内容信息,你可以将PrintHeader属性设置为FirstPage,这样只有第一页显示公司名称信息了。...其他的值你可以自己尝试设置,在这里就不一一介绍了。 6. PrintStyle 这是一个非常实用的属性,他控制打印的样式,默认为Rich,代表所有的控件上面的样式和内容都要打印。

    1.8K80

    详细讲解All in One SEO Pack设置教程(多合一SEO集)

    SEO设置,能够帮助WordPress网站完善SEO功能,提高网络营销中网站在搜索引擎的排名位置,许多人使用它设置网站的关键词和网站优化策略。...都将采用默认的首页TDK,而忽略特定页面的TDK;勾选该选项后,会采用首页页面的中设置的TDK,不建议勾选,因为首页的TDK非常重要,要避免频繁更改 标题设置 设置网站的Title格式,比如我们常见的title...:如果有分页的话,仅在第一页添加描述,防止重复内容 从不缩短长描述:默认当描述超过一定字数后,会自动进行裁切,勾选则会禁止该功能,不建议使用 取消保护文章页的Meta项:取消对使用XML-RPC的内部postmeta...安装方式和普通插件相同,安装后启用即可。...SEO 审核清单 分析您的整个 WordPress 网站以检测严重错误并获得可操作的见解,以提升您的 SEO 并获得更多流量。

    23910

    H5 页面列表缓存方案

    但刚才说的都是 App,在原生 App 中,页面是一层层的 View,盖在 LastPage 上,天然就能够保存上一个页面的状态,而 H5 不同,从详情返回到列表后,状态会被清除掉,重新走一遍生命周期,...会重新发起请求,会有新的状态写入,对于分页接口,列表很长,当用户翻了好几页后,点击详情看看商品详情后再返回列表,此时页面回到第一页,这样用户体验很差,如果在进入详情的时候将列表数据缓存起来,返回列表的时候用缓存数据...因此,当用户从详情页退回到列表页时,会重新加载列表页面组件,重新走一遍生命周期,获取的就是第一页的数据,从而回到了列表顶部,下面是常用的路由匹配代码段。...第二种解决方案就是手动保存状态,即在页面卸载时手动将页面的状态收集存储起来,在页面挂载的时候进行数据恢复,个人采用的就是简单粗暴的后者,实现上比较简单。...,在离开页面的时候存起来,再次进入的时候拿到数据后跳转到之前的高度,除此之外,还有很多别的缓存的方式,可以缓存整个页面,缓存 state 的数据等等,这些都可以达到我们想要的效果,具体用哪一种要看具体的业务场景

    1.6K20

    使用 Django Pagination 实现简单的分页功能

    : >>> p.num_pages 2 查看某一页是否还有上一页,以及查询该页上一页的页码: # 查询第二页是否还有上一页 >>> page2.has_previous() True # 查询第二页上一页的页码...在模板中设置分页导航 接下来便是在模板中设置分页导航,比如上一页、下一页的按钮,以及显示一些页面信息。我们这里设置和 Django 官方博客那样的分页导航样式(具体的样式见上图)。...在你想要显示分页信息的地方使用下面的代码。...进一步拓展 使用 Django 内置的 Pagination 只能实现上面的简单分页效果,但通常更加高级的分页效果应该像下图这样: image.png 当前页面高亮显示,且显示当前页面前后几页的页码,...始终显示第一页和最后一页的页码,中间可能还有省略号的效果,表示还有未显示的页码。

    2K90

    100w条记录分页,可以有多快?—— DataReader分页与SQL语句分页的对比测试(在线演示)

    理论上就不说了,直接用测试说话。   1、100w条记录,使用SQL语句(max方法)分页,PostBack方式,GridView显示数据。...windows Server 2000、asp.net2.0 测试结果:   1、SQL语句(max方法),前若干页(不包括第一页),只需要十几毫秒。...最后若干页,需要300多毫秒,不超过0.5s。   2、DataReader分页。很平稳,不管是前面的还是后面的,都是1.5s左右。   有在线测试(见上面的连接),大家可以自己看看。...另外请注意一下,在显示第一页的时候,会使用count(0)来统计一下总记录数,所以显示第一页的时候,时间会长一点。   ...由于是动态拼接的SQL语句,没有使用存储过程,所以每次分页,都可以查看到使用的SQL。

    1.4K70

    Echo 的私信列表与详情页是怎么做的

    当然,这个字段是冗余的,我们可以通过 from_id 和 to_id 推演出来,但是有了这个字段方便后面的查询等操作 content:私信/系统通知的内容 status:私信/系统通知的状态(这个字段就是我们实现未读消息的关键...分页查询这里就不再说了,直接复用我们封装好的模型即可,不明白的小伙伴可以看这里 Echo 的帖子列表与分页是怎么做的,需要注意的是,分页查询需要获得该用户的所有会话数量(该方法是 selectConversationCount...怎么把未读私信的数量和未读系统通知数量实时的传过来呢? ? 没错,拦截器。 ? 这样,前端读取 allUnreadCount 这个属性就行了。 再来看私信详情:getLetterDetail ?...具体流程是这样的:进入私信详情页后,先从当前页的私信列表 letterList 中获取当前登录用户未读私信的 id,然后批量的将这些 id 对应的私信状态设置为已读。...所以你看到的效果就是这样的: 当你点开一个会话后,你会先进入第一页,然后第一页消息列表中的所有未读消息的状态都会被设置为已读;你进入第二页,于是第二页消息列表中的所有未读消息的状态都会被设置为已读...

    1.2K31

    不用代码,采集知乎、微博、微信、58系列之二:实现无限页面采集

    我们在采集多页面的时候,首先要做的就是观察页面在翻页的时候,页面链接是否发生变化,这里主要可以分为3种形式来讨论: 1、URL 参数分页(比较规整方式),URL 中带有分页的 page 参数的,如知乎,...链接就会发生这样的变化,第一页,第二页、第三页、第N页: ? ? ? ? 我们会发现,当我们翻到第N页的时候,page后面的参数也是N,都是呈现规律式的变化,像这种分页模式的处理就很简单了。...其实还有一种情况类似规律性页面分布,但是又有所不同,我们就以豆瓣为例,来看下豆瓣的链接,下面分别是第一页、第二页、第三页、第四页、第10页的页面链接: ? ? ? ? ?...我们可以看到第一页时,start的参数是0,第二页的start参数是25,第三页的start参数是50,以此类推,发现每个页面参数都是相差25的,而不是知乎的1,这个时候我们的分页链接可以写成: ?...但这并不是全部,当你在采集麦淘网的时候,在选择元素的时候,会发现很多内容是选不上的,这个时候就需要用到自动选择和子父类的概念,下次会介绍。

    1.2K40
    领券