WordPress通过数据库停用插件?

时间:2010-04-12 18:54:08

标签: php wordpress

我有一个wordpress脚本,wp-supercache,我需要禁用(因为它缓存了一个讨厌的错误),但是,错误导致wp-admin重定向失败,这意味着我无法进入该网站禁用该插件。

有什么建议吗?我可以通过cpanel访问数据库。

10 个答案:

答案 0 :(得分:27)

尝试重新命名插件的文件夹,然后查看错误是否消失(当然首先进行备份)。如果这没有用,那么 here is the solution

答案 1 :(得分:20)

要禁用特定插件,您必须将其从存储所有插件列表的序列化字符串中删除 - 这些插件在option_value表的wp_options列中设置,如所讨论的那样通过@TimDurden。您必须进行的具体格式更改为taken shamelessly from teh Internet

a:4:{
    i:0;s:19:"akismet/akismet.php";
    i:1;s:36:"google-sitemap-generator/sitemap.php";
    i:2;s:55:"google-syntax-highlighter/google_syntax_highlighter.php";
    i:3;s:29:"wp-swfobject/wp-swfobject.php";
}

第一组字符 - a:4 - 指定一个数组及其长度。另请注意,插件列表中的每一行都有一个索引。所以:

  1. 减少索引(在这种情况下从4减少到3)
  2. 在每一行中,递减i:
  3. 之后的数字
  4. 删除要禁用的特定插件。
  5. 使用您根据以下步骤构建的新字符串更新数据库中的值:

    update wp_options set option_value=<new value> where option_id=<id of this option>
    

    请注意,您的表名可能不是wp_options - 您可能需要添加前缀。

答案 2 :(得分:14)

您只需要重命名/ wp-content / plugins /中的文件夹,插件将自动取消激活。一旦取消激活,您就可以登录。

答案 3 :(得分:5)

  1. 备份数据库或只是wp_options表
  2.   

    SELECT option_value FROM wp_options WHERE option_name =&#39; active_plugins&#39;;

  3. 复制选定的字符串(序列化字符串)并粘贴到https://serializededitor.com/
  4. 的左侧
  5. 删除要停用的插件行
  6. 从右侧复制序列化结果字符串,并用它更新active_plugins值。

      

    更新wp_options   SET option_value =&#39; THE_NEW_SERIALIZED_STRING&#39;   WHERE option_name =&#39; active_plugins&#39;限制1;

答案 4 :(得分:2)

我在.dot中写了一个小exe来修复/删除数据库中的选项字符串。

  1. 下载exe here
  2. 在MySQL服务器上运行
  3.   

    SELECT * FROM wp_options WHERE option_name =&#39; active_plugins&#39;;

    1. 将结果粘贴到文本框中,按解析。
    2. 删除您不想要的内容。
    3. 点击输出,将输出复制到剪贴板
    4. 使用输出和MySQL服务器上的“运行”替换下面单引号内的括号
    5.   

      更新wp_options SET option_value =&#39; [用输出替换单引号内部&#39; WHERE option_name =&#39; active_plugins&#39;;

      1. 不保证......我不是自称是程序员
      2. enter image description here

答案 5 :(得分:1)

要停用您网站上的所有Wordpress插件:

  1. 登录您的数据库管理工具(例如PHPMyAdmin)
  2. 执行以下查询:
  3. UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

答案 6 :(得分:1)

另一种方法是你可以备份网站,然后只需将/ wp-content / plugins /下插件的文件夹重命名为其他名称。因此该插件将被禁用。 我不喜欢删除插件文件夹,因为它可能会导致错误。 完成该步骤后,登录您的wordpress站点并从那里删除插件

答案 7 :(得分:1)

您只需更改数据库中记录“active_plugins”中的值即可。您可以找到流程Here

答案 8 :(得分:0)

迟到的答案,但回答它将来对某人有用。所有插件都以序列化方式存储在wp_options表中。你可以手动编辑这个字段。或者如果你使用像php这样的函数使用unserialize()反序列化它,你将得到一个数组。只需修改它以删除要从该数组中删除的插件,然后将其序列化。然后更新表格。而已。如果您想了解更多信息,请here是一篇好文章。它解释了所有这些。

答案 9 :(得分:0)

使用此代码,您可以从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' );