Comment exécuter des scripts Python dans WordPress
Publié: 2023-08-03Python continue de gagner en popularité en raison de sa facilité d'utilisation, de ses bibliothèques puissantes et de sa syntaxe simple. Je me retrouve souvent à prototyper des fonctionnalités individuelles pour WordPress avec Python avant de les convertir en PHP.
Mais au lieu de faire cela, pourquoi ne pas simplement exécuter Python sur WordPress ? Dans cet article, nous aborderons les différentes méthodes pouvant être utilisées pour exécuter du code Python directement sur un site Web WordPress.
Exécuter des scripts Python sur WordPress
Nous pouvons utiliser une fonction PHP intégrée appelée exec()
pour exécuter des scripts externes, y compris à partir de Python. Cela nécessitera un peu de code en PHP et en Python pour fonctionner, mais c'est assez facile une fois que vous comprenez comment tout s'emboîte.
Nous pouvons soit créer un plugin, soit un extrait de code. Cela dépend de ce que vous cherchez à construire, mais je crée généralement un extrait de code qui est plus facile à gérer sur le frontend du site Web.
Tout d'abord, assurez-vous que Python est globalement installé sur votre serveur. Vous pouvez le faire vous-même si vous avez un accès root, sinon, vous devrez demander à votre hébergeur de l'installer. Par exemple, sur Cloudways, nous avions besoin qu'ils installent Python pour nous.
Fonction PHP
Nous allons créer le code pour créer une fonction PHP qui exécutera n'importe quel script Python dans WordPress. Pour faciliter l'utilisation, je vais d'abord vous montrer un extrait qui peut être utilisé avec un plugin Code Snippet Management. Ensuite, nous pouvons jeter un œil à la création d'un plugin personnalisé pour faire la même chose.
Avec cette fonction, tous les scripts Python résident dans la médiathèque et nous pouvons sélectionner le script à exécuter en spécifiant l'ID de l'élément de la médiathèque. Gardez à l'esprit que vous devrez probablement autoriser le téléchargement du type mime Python. J'ai utilisé ce plugin pour l'activer.
Cela semble un peu compliqué car j'ai fini par ajouter beaucoup de gestion des erreurs. Mais à la base, tout ce que le code fait est de trouver le fichier dans la médiathèque et d'exécuter le script, en produisant tout ce qu'il finit par renvoyer.
Veuillez noter que j'ai utilisé 'python3' car c'est ce qui est installé sur ma machine. Vous voudrez peut-être le changer en 'python'.
Si nous créons un plugin, la structure peut ressembler à ceci :
wp-content/plugins/ cwpai_my-python-plugin/ cwpai_plugin.php assets/ py/ script.py
cwpai_plugin.php ressemble à ceci :
Pour le plugin, il est plus rapide d'inclure les scripts Python dans un répertoire spécifique (dans cet exemple, il s'agit de assets/py), ce qui vous permet de les ajouter et de les modifier via FTP. Par conséquent, c'est mieux si vous avez beaucoup de Python à exécuter dans WordPress.
Pour l'utiliser, il suffit d'appeler la fonction :
Petit code
En "production", créer un shortcode WP pour exécuter un script Python peut également être utile. Nous pouvons utiliser la même fonction générale ci-dessus, en la modifiant pour en faire un shortcode WordPress :
Vous pouvez désormais utiliser le shortcode [run_python_script media_]
directement dans vos publications et pages. Remplacez "6" par l'ID du fichier multimédia que vous souhaitez utiliser.
Utiliser un service hébergé
Il existe des dizaines de services hébergés qui vous permettent d'accéder à Python via des API. Cela peut être utile pour des projets et des flux de travail plus complexes, d'autant plus que vous pouvez accéder à la sortie en PHP (à l'aide de CURL) comme si vous créiez votre propre plugin personnalisé.
Tout d'abord, vous devrez créer une API avec Python. Voici une bonne ressource pour cela. Vous utiliserez essentiellement Flask pour créer une application Web qui expose les points de terminaison de l'API. Ensuite, vous hébergerez cette application Web avec l'un de ces services et accéderez aux différents points de terminaison de l'API avec PHP.
Voici un exemple d'application Python contenant l'API :
Et comment j'y accéderais en PHP, me permettant d'utiliser ces données dans WordPress (qu'il s'agisse de modifier les champs de la base de données, d'ajouter un nouvel utilisateur, etc.)
Désormais, avec les données $response, vous pouvez les utiliser avec toutes les fonctions WordPress. Ceci est un exemple de base, mais bon pour montrer comment vous feriez cela.
Si vous êtes un peu technique et que vous voulez quelque chose de bon marché, je vous suggère de déployer votre application Python en utilisant Digital Ocean qui coûte 2,50 $/mois pour des choses simples.
Si vous voulez quelque chose de rapide, simple et facile, consultez PythonAnywhere.com qui commence à 5 $/mois.
À part les petits scénarios, cette méthode est probablement la meilleure façon de faire les choses.
Convertir Python en PHP
Une autre option serait de simplement convertir Python en PHP et d'utiliser un plugin comme Code Snippets pour exécuter cette fonction.
Vous pouvez le convertir manuellement en PHP ou utiliser un outil comme ChatGPT ou CodeWP pour le coller dans le Python et demander qu'il soit réécrit en PHP. Voici un exemple avec CodeWP, un outil d'IA spécialement conçu pour les créateurs WordPress :
Conclusion
En tant que développeur WordPress qui travaille avec l'IA, j'ai souvent besoin de modéliser rapidement quelque chose avec Python, ou même de créer des fonctionnalités complètes au niveau de la production dans le langage.
En suivant ces méthodes, vous pouvez rapidement exécuter python sur un site WordPress et accéder à toute sortie qu'il peut produire.