15

I've just disabled a plugin on my site and it's now giving me the dreaded white screen of death. I know the site will be fine if I reactivate the plugin.

Is there a way to manually activate a plugin through PHPMyAdmin or over FTP?

  • probably be useful to tell the plugin owner that this happened. Maybe the plugin needs a bit of work – Benny Aug 27 '15 at 8:26
28

I fixed this by going through PHPMyAdmin to the table "Options" and then the row active_plugins.

I had the following stored there (formatted for readability):

a:10:{
    i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
    i:1;s:29:"acf-repeater/acf-repeater.php";
    i:2;s:30:"advanced-custom-fields/acf.php";
    i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
    i:4;s:27:"redirection/redirection.php";
    i:6;s:33:"w3-total-cache/w3-total-cache.php";
    i:7;s:41:"wordpress-importer/wordpress-importer.php";
    i:8;s:24:"wordpress-seo/wp-seo.php";
    i:9;s:34:"wpml-string-translation/plugin.php";
    i:10;s:38:"wpml-translation-management/plugin.php";
}

I added a new line (for the missing plugin) and incremented the a:10 to a:11 to indicate that there are now 11 items in the array:

a:11:{
    i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
    i:1;s:29:"acf-repeater/acf-repeater.php";
    i:2;s:30:"advanced-custom-fields/acf.php";
    i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
    i:4;s:27:"redirection/redirection.php";
    i:5;s:40:"sitepress-multilingual-cms/sitepress.php";
    i:6;s:33:"w3-total-cache/w3-total-cache.php";
    i:7;s:41:"wordpress-importer/wordpress-importer.php";
    i:8;s:24:"wordpress-seo/wp-seo.php";
    i:9;s:34:"wpml-string-translation/plugin.php";
    i:10;s:38:"wpml-translation-management/plugin.php";
}

i: appears to be item number, and thanks to JHoffmann's comment, it appears s: is the length of the string that follows.

The site now works as before!

  • 2
    The s stands for string and the number following is the length of the string. – JHoffmann Aug 26 '15 at 16:37
  • @JHoffmann Thanks for that! Updated my answer. Can you tell me where you learned that? Is there a good resource anywhere that explains such things? Thanks. – Django Reinhardt Aug 26 '15 at 16:40
  • i actually means integer value, s means string and the number next to s is the lenght of the string – Pieter Goosen Aug 27 '15 at 8:25
  • 1
    That is serialized data. I don't have an exact source, but you can look into serialized data. You can also look at JSON as this is more where serialized data is used – Pieter Goosen Aug 27 '15 at 11:18
  • 1
    @DjangoReinhardt As Pieter Goosen said this is serialized data as it is generated by php's serialize function. In wordpress there is also a wrapper function called maybe_serialize – JHoffmann Aug 27 '15 at 23:25
7
//Using this code you can activate your plugin from the 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' );
  • If you would like to activate more than one plugin then just repeat... – Anil Jadhav Jul 16 '16 at 18:49
  • array_push($active_plugins, 'unyson/unyson.php'); – Anil Jadhav Jul 16 '16 at 18:49
  • 1
    you could also add an if(!in_array('unyson/unyson.php',$active_plugins)) to make sure it's not added more than once – Pierre May 28 '18 at 11:00
3

You can simply rename the plugin folder, for example:

"_aksimet" to deactive it and than back to "aksimet" to activate it again (if was active)

you can do that with all "plugins" folder together.

Otherwise, go to MySQL and have a look at this step by step manual, in short:

  1. MYSQL > wp_options
  2. search for active_plugins entry (both steps can be done by SELECT * FROM wp_options WHERE option_name = 'active_plugins';)
  3. and than write your plugin there as the other plugins are written (i is index, s is for the length of string).

Hope it helps

  • Thanks. I tried deactivating and it turns out the code for the plugin is far too ingrained across the entire site. I need a way to reactivate it :( – Django Reinhardt Aug 26 '15 at 15:57
  • What do you mean by that? For reactivation simply rename it back. Do you have any errors or so? – kybernaut.cz Aug 26 '15 at 16:28
  • The plugin was deactivated through the WP Admin interface. Once it was deactivated I could no longer access my site. There was nothing to "rename" as I didn't deactivate it by renaming it over FTP. – Django Reinhardt Aug 26 '15 at 16:33
  • I've updated my answer, but that definitely weird. Which plugin it was? Maybe you can switch back to twentyfifteen (renaming your theme) activate it and check what went wrong and than going back to your theme. – kybernaut.cz Aug 27 '15 at 8:20
2

Just another answer for a different approach that could benefit someone else in the future. You could also move the plugin folder to the Must Use folder (which you will probably need to create if not used before. This path is usually:

wp-content/mu-plugins

Plugins in this folder will always run. Refer to the following for more info:

https://codex.wordpress.org/Must_Use_Plugins

Note: The only thing to consider is that these plugins are loaded before others in the plugins folder. Also refer to the caveats in the above link as there may be other issues that could prevent your plugin working correctly.

protected by Community Nov 17 '16 at 12:29

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.