Kas*_*eed 20 ftp wordpress admin
我正在使用Wordpress,我在本地完成了我的项目.然后我将它移动到我的实时服务器并且没有改变任何东西,我只是在配置文件中进行了更改(数据库名称,用户名和密码).
现在我的网站在前端工作正常,但每次它给我错误信息时我都无法访问管理面板:
您没有足够的权限来访问此页面.
谷歌搜索表明大多数错误是由于前缀的变化而发生的,但在我的情况下与本地相同.此外,我的目录的权限是755,文件的权限是644但仍然面临同样的问题.
我该怎么办呢?
Nik*_*lov 88
您是否更改了数据库表的前缀?我90%肯定,这是你的问题.
问题是WordPress使用$table_prefix变量来形成选项和usermeta键名称,它存储角色和功能信息.因此,一旦更改了前缀,但没有更新数据库,就会出现此错误.以下是如何修复它 - 通过phpMyAdmin执行此SQL命令,或者使用不同的接口与数据库交互(您也可以使用PHP执行此操作):
UPDATE `{%TABLE_PREFIX%}usermeta` SET `meta_key` = replace(`meta_key`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
Run Code Online (Sandbox Code Playgroud)
哪里:
{%TABLE_PREFIX%}是你当前的$table_prefix(如图所示wp-config.php){%OLD_TABLE_PREFIX%} 是你以前的 $table_prefix{%NEW_TABLE_PREFIX%}是你的新(当前)$table_prefix- 它很可能与你的相同{%TABLE_PREFIX%}.所以,如果你的旧$table_prefix是wp_test_和你的新的是wp_,你会做这样的查询:
UPDATE `wp_usermeta` SET `meta_key` = replace(`meta_key`, 'wp_test_', 'wp_');
UPDATE `wp_options` SET `option_name` = replace(`option_name`, 'wp_test_', 'wp_');
Run Code Online (Sandbox Code Playgroud)
编辑:正如@Francisco Corrales指出的,如果您在访问您创建的管理页面时遇到麻烦(如果您不编写PHP,这不是您的情况),您可以查看此链接:开发插件时出现Wordpress错误 - "您没有足够的权限来访问此页面."
编辑2:正如@Kasper Souren所指出的,您可能希望在选项UPDATE查询中添加WHERE子句.像这样(不要删除%最后一个%}):
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}') WHERE option_name like '{%OLD_TABLE_PREFIX%}%';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46037 次 |
| 最近记录: |