Wordpress-对不起,您不能编辑此项目

Dra*_*nov 5 php wordpress ssl https themes

移至新主机后,我的一个站点上出现了奇怪的错误消息

抱歉,您不能编辑此项目。

我找到的解决方案对我不起作用是:

  1. 我检查了所有前缀内容,因为我的perfix不是,wp_所以in users_meta和in 都正确wp_options

  2. 我什至尝试用php代码插入新的管理用户,但出现了同样的错误。

  3. 我还尝试停用所有插件并重置为默认主题,但没有任何效果。

我移到的服务器具有ssl,因此它的https连接已覆盖db中所有URL的更新。

另一个问题是当我登录wp-admin时显示相同的消息

抱歉,您不能编辑此项目。

在前端,我看到了功能齐全的wp-bar,带有所有按钮,包括edit page / Create New post / page / etc。但是,当我单击它时,它显示与上述相同的错误。

有什么建议么?

Mar*_*pak 7

如果您尝试编辑类别/自定义分类法并收到此错误,则应该执行以下操作。

  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;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 检查taxonomy表中wp_term_taxonomy您想要保留的列并删除其他taxonomy记录。删除之前请参阅#3。

  3. 您还应该从表中删除您要从表中删除的wp_term_relationships对应记录。term_taxonomy_idwp_term_taxonomy

提示: 在数据库上执行任何 DELETE 查询之前,请先备份数据库。


Ars*_*ani 0

停用所有插件并一一激活它们,这将有助于找到罪魁祸首。如果您无法进入仪表板,请使用 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 );
}
Run Code Online (Sandbox Code Playgroud)

有了这个

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 );
}
Run Code Online (Sandbox Code Playgroud)

这只是一个临时修复。如果它有效,您仍然需要找到适当的解决方案,因为capabilities.php核心文件和任何更新都会覆盖您的代码。