-
-
Save damiencarbery/ac356e46341857eb98a30e8b2d5c3b77 to your computer and use it in GitHub Desktop.
| <?php | |
| /* | |
| // Restrict who can access this script. | |
| $permitted_ips = array('12.34.56.78', ); | |
| if (in_array($_SERVER['REMOTE_ADDR'], $permitted_ips) == false) { | |
| header('HTTP/1.0 403 Forbidden'); | |
| die(); | |
| } | |
| */ | |
| ?> | |
| <!DOCTYPE html> | |
| <html lang="en-US"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <title>List Active Plugins</title> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| </head> | |
| <body> | |
| <h1>List Active Plugins</h1> | |
| <?php | |
| $csv_output = true; // Set to false for html style. | |
| define('WP_USE_THEMES', false); | |
| /** Loads the WordPress Environment and Template */ | |
| require( dirname( __FILE__ ) . '/wp-blog-header.php' ); | |
| // Check if get_plugins() function exists. This is required on the front end of the | |
| // site, since it is in a file that is normally only loaded in the admin. | |
| if ( ! function_exists( 'get_plugins' ) ) { | |
| require_once ABSPATH . 'wp-admin/includes/plugin.php'; | |
| } | |
| $all_plugins = get_plugins(); | |
| $active_plugins = get_option('active_plugins'); | |
| if ( $csv_output ) { echo '<pre>'; } | |
| foreach ( $active_plugins as $index => $plugin ) { | |
| if ( array_key_exists( $plugin, $all_plugins ) ) { | |
| //var_export( $all_plugins[ $plugin ] ); | |
| if ( $csv_output ) { | |
| echo join( "\t", array( $all_plugins[ $plugin ][ 'Name' ], $all_plugins[ $plugin ][ 'Version' ], $all_plugins[ $plugin ][ 'Description' ] ) ), "\n"; | |
| } else { | |
| echo '<h2>', $all_plugins[ $plugin ][ 'Name' ], ' ('. $all_plugins[ $plugin ][ 'Version' ] .')</h2>'; | |
| echo '<p>', $all_plugins[ $plugin ][ 'Description' ], '</p>'; | |
| } | |
| } | |
| } | |
| if ( $csv_output ) { echo '</pre>'; } | |
| ?> | |
| </body> |
| array ( | |
| 'Name' => 'Events Manager', | |
| 'PluginURI' => 'http://wp-events-plugin.com', | |
| 'Version' => '5.8.1.1', | |
| 'Description' => 'Event registration and booking management for WordPress. Recurring events, locations, google maps, rss, ical, booking registration and more!', | |
| 'Author' => 'Marcus Sykes', | |
| 'AuthorURI' => 'http://wp-events-plugin.com', | |
| 'TextDomain' => 'events-manager', | |
| 'DomainPath' => '', | |
| 'Network' => false, | |
| 'Title' => 'Events Manager', | |
| 'AuthorName' => 'Marcus Sykes', | |
| ) |
it not working
It is working for me. I tried it on a site running WordPress 5.7.1 with 38 active plugins.
Note: This code is not a plugin file. It must be uploaded to the root directory (the same directory as wp-blog-header.php).
Is there step by step instructions i could follow I would like to get all installed plugins in json or csv and download I m not a dev but i have 15 years hands on experience just a few steps, what code and where it would be great
I have updated the code to create a CSV output (tab separated because some plugin descriptions contain commas).
If you want the previous format then change the line
$csv_output = true; to $csv_output = false;
Upload the file to the root directory of your website and then access https://example.com/list-active-plugins.php
When you are finished please delete the file because it is a security hole (it has full access to the WordPress site without needing a password).
it not working