J'utilise un script PHP personnalisé pour installer WordPress via l'API Softaculous. Une fois installé, quel est le meilleur moyen d'installer et d'activer un plugin par programme? Je pourrais essayer de configurer un script personnalisé WP dans Softaculous avec un script PHP dans un plugin personnalisé situé dans un dossier mu-plugins, mais je préférerais ne pas le faire et installer plutôt/active le plugin après l'installation WP.
Donc, ce que je voudrais faire après l’installation principale WP et à partir d’un script externe PHP si possible est le suivant:
Peut-être que je pourrais utiliser le TGM-Plugin-Activation
pour installer/activer un autre plugin, mais il faudrait que je puisse installer/activer ce plugin lui-même. Est-ce possible sans clics de l'administrateur et sans utiliser la préinstallation du dossier mu-plugins?
J'ai lu ces posts:
Le moyen facile; utilisez la CLIÉ WP (également disponible en tant que wp-cli.phar
) pour obtenir une solution solide et maintenable pour cette exigence. Plus pour ce sujet, vous trouverez à la commande
Si vous avez besoin d'un script personnalisé, il est nécessaire de charger l'API WP, via wp-load.php
et de rechercher la fonction activate_plugin($path_to_the_plugin)
.
Comme exemple ce dont vous avez besoin pour avoir toutes les conditions pour activer un plugin, voir ci-dessous
define( 'WP_ADMIN', TRUE );
define( 'WP_NETWORK_ADMIN', TRUE ); // Need for Multisite
define( 'WP_USER_ADMIN', TRUE );
require_once('../wp-load.php');
require_once( '../wp-admin/includes/admin.php' );
require_once( '../wp-admin/includes/plugin.php' );
activate_plugin( 'PATH_TO_THE_PLUGIN' );
L'installation d'un plugin est également possible via l'API de WP, le code qui devrait aider à fonctionner dans la bonne direction.
// Include required libs for installation
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
require_once( ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php' );
require_once( ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php' );
// Get Plugin Info
$api = plugins_api( 'plugin_information',
array(
'slug' => $plugin,
'fields' => array(
'short_description' => false,
'sections' => false,
'requires' => false,
'rating' => false,
'ratings' => false,
'downloaded' => false,
'last_updated' => false,
'added' => false,
'tags' => false,
'compatibility' => false,
'homepage' => false,
'donate_link' => false,
),
)
);
$skin = new WP_Ajax_Upgrader_Skin();
$upgrader = new Plugin_Upgrader( $skin );
$upgrader->install( $api->download_link );
Un exemple qui installe et active vous voit dans cette classe .