Php WordPress是否通过数据库停用插件?
我有一个wordpress脚本,wp supercache,我需要禁用它(因为它缓存在一个严重的错误上),但是,这个错误导致wp admin重定向失败,这意味着我无法进入站点禁用插件Php WordPress是否通过数据库停用插件?,php,wordpress,Php,Wordpress,我有一个wordpress脚本,wp supercache,我需要禁用它(因为它缓存在一个严重的错误上),但是,这个错误导致wp admin重定向失败,这意味着我无法进入站点禁用插件 有什么建议吗?我可以通过cpanel访问数据库。尝试重新命名插件的文件夹,然后查看错误是否消失(当然要先备份)。如果没有帮助,那么。您只需重命名/wp content/plugins/中的文件夹,插件将自动停用。一旦停用,您就可以登录。要禁用站点上的所有Wordpress插件: 登录到您的数据库管理工具(例如PHP
有什么建议吗?我可以通过cpanel访问数据库。尝试重新命名插件的文件夹,然后查看错误是否消失(当然要先备份)。如果没有帮助,那么。您只需重命名/wp content/plugins/中的文件夹,插件将自动停用。一旦停用,您就可以登录。要禁用站点上的所有Wordpress插件:
updatewp\u options SET option\u value='',其中option\u name='active\u plugins'
要禁用某个特定插件,必须将其从存储所有插件列表的序列化字符串中删除,该字符串在wp\u options
表的option\u value
列中设置,如@TimDurden所述。您必须进行的特定格式更改是:
第一组字符-a:4
-指定数组及其长度。还要注意,插件列表中的每一行都有一个索引。因此:
i:
update wp_options set option_value=<new value> where option_id=<id of this option>
updatewp\u options set option\u value=where option\u id=
请注意,您的表名可能不是wp_选项-您可能需要添加一个前缀。请稍后回答,但请稍后回答,因为这对将来的人很有用。所有插件都以序列化方式存储在wp_options表中。您可以手动编辑此字段。或者,如果使用php中使用unserialize()之类的函数对其进行unserialize,则会得到一个数组。只需对其进行修改,以从该阵列中删除要删除的插件,然后将其序列化回来。然后更新表。就这样。如果你想了解更多,这是一篇好文章。它解释了这一切。另一种方法是备份站点,然后将/wp content/plugins/下的插件文件夹重命名为其他名称。因此插件将被禁用。 我不喜欢删除插件文件夹,因为它可能会导致错误。
完成此步骤后,登录到wordpress站点并从中删除插件我在.dot中编写了一个小exe来修复/删除数据库中的选项字符串
使用此代码,您可以从
functions.php
激活插件:
function activate_plugin_via_php() {
$active_plugins = get_option( 'active_plugins' );
array_push($active_plugins, 'unyson/unyson.php'); /* Here just replace unyson plugin directory and plugin file*/
update_option( 'active_plugins', $active_plugins );
}
add_action( 'init', 'activate_plugin_via_php' );
您只需更改数据库中“active_plugins”记录中的值,即可找到进程
这对我来说效果很好。我安装了captcha插件,但无法进入管理区域…我只是去了文件管理器并重命名了插件文件夹名称…插件被停用。这在大多数情况下都能正常工作。但是,有时插件所做的更改只有在通过UI卸载时才会回滚。。即使用。@StevendeSalas:问题是关于如何禁用破坏管理UI的插件。如果他们无法登录UI,他们将无法使用它卸载插件。删除插件文件夹太多。只需重命名它,如下面的答案所述。这适用于WordPress 2.9及以后的版本。对于2.9以上的版本,正确的SQL is
updatewp\u options SET option\u value='a:0:{},其中option\u name='active\u plugins';
正如这里提到的那样,为您提供指南unyson:-它是插件文件夹名unyson.php:-插件主文件如果您想一次激活多个插件,只需重复array\u push($active\u plugins,'unyson/unyson.php'));带有插件文件夹名称和php文件。
function activate_plugin_via_php() {
$active_plugins = get_option( 'active_plugins' );
array_push($active_plugins, 'unyson/unyson.php'); /* Here just replace unyson plugin directory and plugin file*/
update_option( 'active_plugins', $active_plugins );
}
add_action( 'init', 'activate_plugin_via_php' );