web-dev-qa-db-fra.com

Puis-je lister tous les plugins/versions installées et la version wp de l'API

Je souhaite générer un rapport texte simple pour une liste d'instances Wordpress:

  • Version Wordpress
  • Plugins installés (version et si activé)

Je peux obtenir ces informations à partir du tableau de bord, mais existe-t-il un moyen de les obtenir par programme (avec l'API WP ou d'autres moyens intelligents)?

1
Jacob JL

Oui, il existe un moyen d'obtenir cette information par programme.

Informations sur la version de WordPress

La version de WordPress existe sous forme globale, mais vous pouvez également l'obtenir à l'aide de la fonction get_bloginfo():

global $wp_version;
echo $wp_version;

// OR

$wordpress_version = get_bloginfo( 'version' );
echo $wordpress_version;

Info plugin

Pour récupérer les informations du plug-in, utilisez la fonction get_plugins() . Vous devez vous assurer d'inclure également le fichier wp-admin/includes/plugin.php pour pouvoir l'utiliser car ce fichier ne peut pas être considéré comme chargé dans tous les cas d'utilisation.

include_once( 'wp-admin/includes/plugin.php' );
$plugins = get_plugins();

Dans l'article du Codex sur get_plugins() , vous pouvez voir que ce qui précède vous donnera un tableau contenant des informations sur tous les plugins installés:

Array
(
    [hello-dolly/hello.php] => Array
        (
            [Name] => Hello Dolly
            [PluginURI] => http://wordpress.org/extend/plugins/hello-dolly/
            [Version] => 1.6
            [Description] => This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
            [Author] => Matt Mullenweg
            [AuthorURI] => http://ma.tt/
            [TextDomain] => 
            [DomainPath] => 
            [Network] => 
            [Title] => Hello Dolly
            [AuthorName] => Matt Mullenweg

)

Pour obtenir des informations sur les plugins actifs , utilisez les éléments suivants:

$active_plugins = get_option( 'active_plugins' );

$active_plugins sera un tableau des plugins actifs comme suit (en reprenant l'exemple ci-dessus):

Array
(
    [0] => hello-dolly/hello.php
)

En résumé, voici une fonction utilitaire que vous pouvez utiliser pour obtenir tous les plugins installés et tous les plugins actifs, et placer les résultats dans un tableau contenant le nom du plugin, sa version et son statut actif ou non:

function my_get_plugin_info() {

    // Get all plugins
    include_once( 'wp-admin/includes/plugin.php' );
    $all_plugins = get_plugins();

    // Get active plugins
    $active_plugins = get_option('active_plugins');

    // Assemble array of name, version, and whether plugin is active (boolean)
    foreach ( $all_plugins as $key => $value ) {
        $is_active = ( in_array( $key, $active_plugins ) ) ? true : false;
        $plugins[ $key ] = array(
            'name'    => $value['Name'],
            'version' => $value['Version'],
            'active'  => $is_active,
        );
    }

    return $plugins;
}

Cela vous donnerait un résultat de tableau:

[akismet/akismet.php] => Array
    (
        [name] => Akismet Anti-Spam
        [version] => 4.08
        [active] => 1
    )
[gutenberg/gutenberg.php] => Array
    (
        [name] => Gutenberg
        [version] => 3.9.0
        [active] => 1
    )

[hello-dolly/hello.php] => Array
    (
        [name] => Hello Dolly
        [version] => 1.6
        [active] => 
    )

Notez que j'ai fait "actif" un booléen, mais dans la fonction utilitaire, vous pouvez le rendre "actif"/"inactif" ou autre chose. De plus, j’ai seulement inclus nom, version et actif dans mon tableau depuis ce que vous avez mentionné dans le PO, mais toutes les données du résultat get_plugins() pourraient être incluses.

J'ai assemblé la fonction utilitaire ci-dessus ainsi qu'une version alternative qui ajoute simplement une clé "Active" au tableau renvoyé par get_plugins() et les a enregistrées en tant que Gist pour quiconque en a besoin .

1
butlerblog