Utiliser wp-cli pour le plaisir et le profit

Voyez comment vous pouvez effectuer des tâches WordPress courantes plus rapidement ou même les automatiser en utilisant la puissance de bash.


Qu'est-ce que wp-cli?

wp-cli est un outil de contrôle de WordPress via une fenêtre de console.

Lorsque l'interface d'administration de WordPress est si belle et facile à utiliser, la question naturelle est de savoir pourquoi utiliser une interface de ligne de commande.?

Il y a deux principales raisons:

  • Le clavier est plus rapide que la souris - Pour les utilisateurs expérimentés, la saisie d'une commande peut être beaucoup plus rapide que d'appuyer sur un bouton dans un navigateur Web..
  • Scripting - Vous pouvez mettre plusieurs commandes dans un fichier texte et le faire exécuter automatiquement.

Dans ce tutoriel, je vais vous donner un aperçu de ce que wp-cli est bon pour.


Installation de wp-cli

Avant de l'utiliser, vous aurez besoin de quelques choses:

  1. Shell de type UNIX - Si vous utilisez un Mac ou Linux, vous pouvez exécuter wp-cli sur votre ordinateur local. Si vous utilisez Windows, vous pouvez vous connecter à votre serveur Linux via Putty et y installer wp-cli..

  2. PHP 5.3+ et l'utilitaire php-cli - Vous pouvez voir si vous en avez en exécutant la commande suivante:

    php -v
  3. Git - C'est ce que nous allons utiliser pour installer et mettre à jour wp-cli.

Le projet wp-cli en est encore à ses balbutiements. Le meilleur moyen de rester au fait des dernières versions est de le cloner à partir de github:

 git clone --recurse-submodules git: //github.com/andreascreten/wp-cli.git ~ / git / wp-cli cd ~ / git / wp-cli sudo utils / build-dev

~ / git / wp-cli est le répertoire où wp-cli sera installé. N'hésitez pas à le changer pour ce que vous voulez.

C'est tout. Maintenant le wp commande devrait être disponible:

 cd / var / www / public_html / wordpress wp

Sur multisite

Si vous souhaitez utiliser wp-cli sur une installation multisite, vous devrez choisir le blog sur lequel vous souhaitez opérer:

 wp --blog = myblog.mynetwork.com

Pour éviter de devoir passer le --Blog paramètre pour chaque commande, vous pouvez le stocker dans un fichier spécialement nommé:

 echo 'myblog.mynetwork.com'> wp-cli-blog

wp-cli lira ce fichier s'il n'y a pas --Blog paramètre.


Noyau de manutention

Tout d’abord, voyons avec quelle version de WordPress nous avons affaire:

 wp core version --extra

Pour effectuer une mise à jour, il vous suffit d'écrire:

 wp core update

Gestion des plugins

Voyons quels plugins nous avons installés:

 statut du plugin wp

Euh, il semble qu'une mise à jour soit disponible pour Akismet. Installons-le:

 mise à jour du plugin wp akismet

Maintenant, installons et activons un plugin de wordpress.org:

 plugin wp installer google-sitemap-generator --activer

De plus, vous pouvez installer la version de développement d'un plugin:

 plugin wp installer google-sitemap-generator --activate --dev

Oh, et regardez, il y a une nouvelle commande disponible maintenant:

 wp google-sitemap

Nous pouvons rapidement passer d’un plugin d’actif à inactif et inversement:

 plugin wp bascule google-sitemap-generator

C'est un bon moyen de déboguer les hooks d'activation.

De même, vous pouvez exécuter la procédure de désinstallation d'un plugin sans supprimer ses fichiers:

 wp plugin désinstaller google-sitemap-generator

Et, bien sûr, vous pouvez également supprimer le plugin:

 wp plugin supprimer google-sitemap-generator

Gestion des thèmes

Nous avons aussi quelques commandes pour travailler avec des thèmes:

 statut de thème wp

Contrairement aux plugins, vous ne pouvez utiliser qu'un seul thème à la fois. L'activation d'un thème "désactivera" automatiquement le précédent:

 thème wp activer vingt

Et voici une petite astuce pour aller dans le répertoire d'un thème particulier:

 cd $ (chemin du thème wp twentyeleven)

Génération de données

Si vous écrivez un thème et que vous souhaitez styler la pagination, vous aurez besoin de beaucoup de messages. Voici le moyen le plus rapide de les obtenir:

 wp générer des messages --count = 1000

Si vous souhaitez attribuer un style à une liste d'utilisateurs, vous pouvez en générer également:

 wp générer des utilisateurs --role = auteur

Vous pouvez également créer des utilisateurs individuels:

 utilisateur wp create stan [email protected]

Création de fichiers d'exportation

Vous voudrez peut-être exporter périodiquement votre contenu dans un fichier WXR.

 wp export --path =. / --user = admin

Vous pouvez transmettre des paramètres supplémentaires pour limiter le contenu exporté, tels que --Catégorie, --date de début etc.


Changer les options à la volée

Il y a des commandes simples pour CRUD opérations sur options:

 option wp obtenir permalink_structure option wp ajouter barre foo option wp supprimer foo

Vous ne voulez pas le faire régulièrement, car la plupart des options sont limitées à certaines valeurs. Mais cela peut être utile dans les scripts.


Opérations de base de données

Si vous voulez faire une sauvegarde de la base de données, écrivez simplement:

 wp db dump

Ou peut-être avez-vous besoin de faire une recherche rapide pour savoir quand le dernier message a été publié:

 wp db query "SELECT MAX (post_date) from wp_posts WHERE post_type = 'post' AND post_status = 'publish'"

Ouvrir une session interactive MySQL pour effectuer des diagnostics est tout aussi simple:

 wp db cli

Exécuter du code arbitraire

Parfois, la seule façon de dire à wp-cli ce que vous voulez est de le décrire en code PHP:

 wp fichier eval do-my-blanchisserie.php

Avec la commande ci-dessus, wp-cli va d'abord charger WordPress, puis charger et exécuter votre fichier PHP.

Ceci est utile dans les scripts de déploiement ou pour d'autres actions complexes qui ne peuvent pas être réalisées à l'aide de commandes intégrées..

Vous pouvez également passer du code PHP en ligne:

 wp eval 'echo WP_CONTENT_DIR;'

Créer vos propres commandes

Croyez-le ou non, wp-cli est principalement écrit en PHP. Chaque commande est une classe, chaque méthode représentant une sous-commande..

La chose intéressante est que vous pouvez créer votre propre classe, la placer dans un plugin et wp-cli la reconnaîtra automatiquement comme l'une des siennes. Un tutoriel détaillé sur la création de commandes est disponible dans le wiki du projet..


Conclusion

J'espère vous avoir convaincu d'essayer au moins wp-cli. Si vous avez trouvé un bogue ou si vous avez une demande de fonctionnalité, envisagez d'ouvrir un problème..

Vous avez un cas d'utilisation intéressant pour wp-cli? S'il vous plaît partagez-le dans les commentaires ci-dessous.