正在保存 wordpress 修订版,但无法在 revisions.php 中访问
wordpress revisions are being saved, but are not accessible in revisions.php
当我点击修订旁边的 浏览 时,链接到 .../wp-admin/revision.php?revision=190 ,我被重定向到 /wp-admin/edit。php
一些事实:
- 此问题仅适用于自定义 post 类型,不适用于 post 或页面。
- 首次注册 post 类型时不支持修订,但现在
- 修改保存到数据库,结构没有发现异常
- wp_get_post_revision 和 wp_get_post_revisions 都按预期工作
- 不管我做了多少次修改,修改元框都是空的
- WP_DEBUG 设置为 true,但我没有看到任何错误
我在谷歌上搜索了很多,但我只找到了如何激活修订的答案,这不是我遇到的问题。
有没有人遇到过这样的事情,我应该如何解决这个问题?
TL;DR: 修订无法通过 /wp-admin/revisions.php 访问,尽管出现在 wp_get_post_revisions
更新:
我尝试添加另一个自定义 post 类型,以查看问题是否仍然存在 post 类型,这些类型没有像其他类型那样经过各种操作。
添加新的自定义 post 类型时,其他 post 类型(不仅是海关)显示为空(列表显示没有 post)。
即使我删除了函数 s.php 文件中的所有其他挂钩、过滤器和其他代码,这也会持续存在,直到只有这些自定义 post 类型的注册。
TL;DR: 注册另一个自定义 post 类型会导致所有 post 列表显示为空。
更新 2:
只有在注册这个新的自定义 post 类型时 publicly_queryable 设置为 true 时,才会出现之前更新中的问题。
将我之前添加的自定义 post 类型的 publicly_queryable 更改为 true 不会导致此行为,只有使用此新自定义 post 类型(我只是为了排除故障而添加的)。
这些自定义 post 类型,我无法访问其修订版,已注册自定义功能。
我还安装了 Members 插件 (https://wordpress.org/plugins/members/) 来管理自定义用户角色的这些功能。
--
我运行以下测试:
// 188 is the ID of a post revision
echo current_user_can( 'read_post', 188 ) ? '1' : '0';
// 190 is the ID of a custom post revision
echo current_user_can( 'read_kurs', 190 ) ? '1' : '0';
此代码返回“10”,表示可以编辑 posts,但不能编辑自定义 post 类型。
--
换句话说,尽管我是管理员,但我似乎无权访问 post 类型。我还使用实际 post 而非修订版的 ID 进行了测试,结果相同。
然而我能够阅读所有 posts,这只是出于某种原因影响了修订。
G运行让我自己能够 'read_kurs'(在 Members 插件中)解决了这个问题。
我一开始没有这个能力的原因是我这个能力没有出现在编辑能力中,所以尽管检查了一切我仍然无法访问读。
我不得不在Custom Capability下添加'read_kurs',然后在'All'下检查它(因为它没有出现在自定义 post 类型的功能下)。
当我点击修订旁边的 浏览 时,链接到 .../wp-admin/revision.php?revision=190 ,我被重定向到 /wp-admin/edit。php
一些事实:
- 此问题仅适用于自定义 post 类型,不适用于 post 或页面。
- 首次注册 post 类型时不支持修订,但现在
- 修改保存到数据库,结构没有发现异常
- wp_get_post_revision 和 wp_get_post_revisions 都按预期工作
- 不管我做了多少次修改,修改元框都是空的
- WP_DEBUG 设置为 true,但我没有看到任何错误
我在谷歌上搜索了很多,但我只找到了如何激活修订的答案,这不是我遇到的问题。
有没有人遇到过这样的事情,我应该如何解决这个问题?
TL;DR: 修订无法通过 /wp-admin/revisions.php 访问,尽管出现在 wp_get_post_revisions
更新:
我尝试添加另一个自定义 post 类型,以查看问题是否仍然存在 post 类型,这些类型没有像其他类型那样经过各种操作。
添加新的自定义 post 类型时,其他 post 类型(不仅是海关)显示为空(列表显示没有 post)。
即使我删除了函数 s.php 文件中的所有其他挂钩、过滤器和其他代码,这也会持续存在,直到只有这些自定义 post 类型的注册。
TL;DR: 注册另一个自定义 post 类型会导致所有 post 列表显示为空。
更新 2:
只有在注册这个新的自定义 post 类型时 publicly_queryable 设置为 true 时,才会出现之前更新中的问题。
将我之前添加的自定义 post 类型的 publicly_queryable 更改为 true 不会导致此行为,只有使用此新自定义 post 类型(我只是为了排除故障而添加的)。
这些自定义 post 类型,我无法访问其修订版,已注册自定义功能。
我还安装了 Members 插件 (https://wordpress.org/plugins/members/) 来管理自定义用户角色的这些功能。
--
我运行以下测试:
// 188 is the ID of a post revision
echo current_user_can( 'read_post', 188 ) ? '1' : '0';
// 190 is the ID of a custom post revision
echo current_user_can( 'read_kurs', 190 ) ? '1' : '0';
此代码返回“10”,表示可以编辑 posts,但不能编辑自定义 post 类型。
--
换句话说,尽管我是管理员,但我似乎无权访问 post 类型。我还使用实际 post 而非修订版的 ID 进行了测试,结果相同。
然而我能够阅读所有 posts,这只是出于某种原因影响了修订。
G运行让我自己能够 'read_kurs'(在 Members 插件中)解决了这个问题。
我一开始没有这个能力的原因是我这个能力没有出现在编辑能力中,所以尽管检查了一切我仍然无法访问读。
我不得不在Custom Capability下添加'read_kurs',然后在'All'下检查它(因为它没有出现在自定义 post 类型的功能下)。