Wordpress - 抱歉,您无权编辑此项目
Posted
技术标签:
【中文标题】Wordpress - 抱歉,您无权编辑此项目【英文标题】:Wordpress - Sorry, you are not allowed to edit this item 【发布时间】:2017-06-12 08:05:44 【问题描述】:迁移到新主机后,我的一个网站上出现奇怪的错误消息
抱歉,您无权编辑此项目。
我发现的解决方案对我不起作用的是:
我检查了所有前缀,因为我的前缀不是wp_
,所以users_meta
和wp_options
中的所有内容都是准确的。
我什至尝试使用 php 代码插入新的管理用户,我得到了同样的错误。
我还尝试停用所有插件并重置为默认主题,但没有任何效果。
我要转移到的服务器有 ssl,所以它的 https 连接包含 db 内所有 url 的更新。
另一个问题是当我登录 wp-admin
时它显示相同的消息
抱歉,您无权编辑此项目。
在前端,我看到了功能齐全的 wp-bar,其中包含所有按钮编辑页面/创建新帖子/页面/等。但是当我点击它时显示与上面相同的错误。
有什么建议吗?
【问题讨论】:
您是否使用新的https
url 更新了您的 SQL 数据库?
是的,我做到了。数据库中的每个 url 都带有 https。
你什么时候搬的网站?
你到底想做什么?您是在尝试编辑页面/帖子,还是在看到 WP 仪表板之前就收到错误消息?听起来也像前端的错误,是网站本身工作还是您只看到错误?
我的网站出现此错误。结果几乎每个表都关闭了自动增量标志,并且许多表也缺少主键标志。我还在主键列中发现了重复数据。我使用 MyPHP Admin 手动修复了表格。我已经看到应该更有效地工作的 SQL 查询。
【参考方案1】:
如果您尝试编辑类别/自定义分类并收到此错误,您应该执行以下操作。
查看wp_term_taxonomy
表以获取与多个分类 ID 相关联的术语 ID。这些记录是错误的根本原因。以下查询应该可以帮助您找到它。
SELECT term_id, COUNT(term_id) FROM wp_term_taxonomy GROUP BY term_id HAVING COUNT(term_id) > 1;
检查wp_term_taxonomy
表中您要保留的taxonomy
列并删除另一条taxonomy
记录。删除前参考#3。
您还应该从 wp_term_relationships
表中删除您要从 wp_term_taxonomy
表中删除的对应 term_taxonomy_id
的记录。
提示: 在对数据库执行任何 DELETE 查询之前备份数据库。
【讨论】:
@Dragomir Ivanov, @Arsalan Mithani 添加以下行 -if (is_admin()) return true;
可能会导致安全漏洞。
这为我节省了很多时间,玛丽亚。谢谢!【参考方案2】:
停用所有插件并一一激活它们将有助于找到罪魁祸首。如果您无法进入仪表板,请使用 FTP 并重命名插件目录。
临时修复 - 建议仅用于暂存
我发现一个临时解决方法是编辑 wp-includes/capabilities.php
替换此代码
function current_user_can( $capability )
$current_user = wp_get_current_user();
if ( empty( $current_user ) )
return false;
$args = array_slice( func_get_args(), 1 );
$args = array_merge( array( $capability ), $args );
return call_user_func_array( array( $current_user, 'has_cap' ), $args );
有了这个
function current_user_can( $capability )
$current_user = wp_get_current_user();
if ( empty( $current_user ) )
return false;
if (is_admin())
return true;
$args = array_slice( func_get_args(), 1 );
$args = array_merge( array( $capability ), $args );
return call_user_func_array( array( $current_user, 'has_cap' ), $args );
这只是一个临时修复。如果它有效,您仍然需要找到合适的解决方案,因为capabilities.php
是核心文件,任何更新都会覆盖您的代码。
【讨论】:
这是一个非常糟糕的解决方案。除了编辑核心之外,它还删除了所有功能检查 - 用户角色之间没有区别。 谢谢你,Mathani,你是互联网上唯一一位真正解释了安全检查地点的作者。这使我可以暂时暂停检查以修复损坏的管理员配置文件。我用了'return true;'为了有效地暂停该功能并允许仪表板访问,之后自然而然地将其重新打开。 永远不要编辑核心文件,因为当您将 WordPress 更新到较新版本时,您所做的所有更改都会丢失。 @mukto90 最后已经清楚地说明了您在评论中所说的内容。它仅显示检查发生的位置。让我突出显示它以上是关于Wordpress - 抱歉,您无权编辑此项目的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress错误 - 抱歉,您无权访问此页面。将网站从一个域迁移到另一个域后
访问被拒绝并获取 抱歉,在 grails 中将插件 Spring Security 核心升级到 2.0 版本后,您无权查看此页面
Wordpress 403 禁止“您无权访问此服务器上的 /。”
Wordpress 重新安装 - 您无权访问此服务器上的 /sitename/