Comment générer automatiquement des publications WordPress avec Python ?

Si vous régissez un site Web wordpress, vous êtes sans aucun doute conscient de l’importance du contenu. C’est important pour votre présence sur le Web, pour vous aider à être reconnu comme un leader dans votre domaine, pour améliorer votre classement SEO, pour augmenter votre audience, et plus encore.

Dans cet article, je vais vous montrer comment créer du contenu automatiquement et le pousser sur votre site WordPress avec Python.

Voilà comment cela fonctionne :

Nous obtiendrons le contenu de notre source (Openai ) et publierons sur notre site WordPress comme publication.
Le script que nous sommes sur le point de développer peut-être utile si vous souhaitez rapidement créer du contenu pour élargir votre audience.

Supposons que vous ayez un webzine dont le contenu est rédigé par vos soins d’expert et votre imagination, or les vacances approchent et votre départ ne peut pas être reporter. Il est probablement temps pour vous de demander de l’aide. L’intelligence Artificiel est là pour cela.

Pourquoi utiliser Python ?

Python est un langage de programmation très populaire et polyvalent qui offre de nombreux avantages pour automatiser des tâches et développer des applications.

  1. La sécurité : C’est une des raisons importantes pour laquelle Python est un bon choix pour générer automatiquement des publications WordPress. Python est considéré comme un langage de programmation sûr et robuste. 
  2. Facilité d’apprentissage et de lecture : Python a une syntaxe simple et élégante qui le rend facile à apprendre pour les débutants. 
  3. Richesse de bibliothèques et de frameworks : Python dispose d’une vaste collection de bibliothèques et de frameworks qui facilitent le développement d’applications. 

  4. Support multiplateforme : Python est compatible avec différents systèmes d’exploitation tels que Windows, macOS et Linux, ce qui vous permet d’exécuter votre code sur différentes plateformes sans modifications majeures.

  5. Compatibilité avec les autres technologies : Python s’intègre facilement avec d’autres technologies et langages, ce qui vous permet de combiner ses fonctionnalités avec celles d’autres outils ou services.

  6. Communauté active : Python bénéficie d’une communauté de développeurs très active et engagée.

  7. Performance raisonnable : bien que Python ne soit pas aussi rapide que certains langages de programmation bas niveau, sa performance est plus que suffisante pour automatiser des tâches et des opérations de traitement de texte comme dans notre cas.

  8. Flexibilité : Python est flexible et peut être utilisé pour une variété de tâches allant du développement web à l’analyse de données en incluant l’intelligence artificielle. 

wordpress 2
Générer automatiquement des publications WordPress avec OpenAI peut être utile dans divers scénarios

Prérequis

Avant de commencer, assurez-vous d’avoir installé Python sur votre ordinateur. Vous pouvez télécharger Python depuis le site officiel (https://www.python.org/downloads/).

Nous aurons également besoin d’installer la bibliothèque openai. Ouvrez votre terminal ou votre invite de commande et exécutez la commande suivante :

				
					pip install openai
				
			

Assurez-vous également d’avoir un site WordPress fonctionnel où vous disposez des droits nécessaires pour publier des articles. Nous aurons besoin de l’URL de base de votre site WordPress et d’une clé d’API OpenAI pour utiliser l’API de génération de contenu.

Architecture du projet

Avant de commencer à coder, nous allons définir l’architecture du projet. Nous aurons les éléments suivants :

Un dossier « AutomatisationWordPress_OpenAI » pour le projet.

À l’intérieur du dossier, nous aurons les fichiers suivants :

  • config.py: Le fichier de configuration contenant l’URL de base de WordPress et la clé d’API OpenAI.
  • openai_helper.py:  Le module contenant les fonctions pour utiliser OpenAI et générer du contenu de manière créative.
  • wordpress.py:  Le module contenant les fonctions pour publier les articles sur WordPress.
  • interface.py:  Le fichier contenant le code pour l’interface graphique.
  • main.py:  Le fichier principal coordonnant l’exécution du programme.

Étape 1 : Configuration de l’API OpenAI

Avant d’utiliser OpenAI, assurez-vous d’avoir une clé d’API valide. Vous pouvez obtenir une clé d’API en vous inscrivant sur le site d’OpenAI (https://beta.openai.com/signup/).

Une fois que vous avez votre clé d’API, configurez l’API OpenAI dans le fichier config.py :

				
					# config.py
OPENAI_API_KEY = "VOTRE CLÉ D'API ICI"

				
			

Étape 2 : Interface graphique avec Tkinter

Nous allons utiliser la bibliothèque Tkinter pour créer une interface graphique simple où vous pouvez saisir les informations nécessaires pour générer les articles et les publier sur WordPress.

Créez un fichier interface.py

				
					# interface.py
import tkinter as tk
from tkinter import messagebox
import datetime
from config import OPENAI_API_KEY
from openai_helper import prepare_data_for_openai, generate_content_with_openai
from wordpress import publish_to_wordpress
def generate_articles():
    # Récupérer les valeurs saisies dans l'interface
    title = entry_title.get()
    keywords = entry_keywords.get()
    date_str = entry_date.get()
    # Vérifier si tous les champs sont remplis
    if not title or not keywords or not date_str:
        messagebox.showerror("Erreur", "Veuillez remplir tous les champs.")
        return
    # Vérifier si la date est valide
    try:
        scheduled_date = datetime.datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
    except ValueError:
        messagebox.showerror("Erreur", "Format de date invalide. Utilisez le format 'AAAA-MM-JJ HH:MM:SS'.")
        return
    # Vérifier si la date est future
    now = datetime.datetime.now()
    if scheduled_date <= now:
        messagebox.showerror("Erreur", "La date de publication doit être future.")
        return
    # Préparer les données pour OpenAI
    prompt = prepare_data_for_openai(title, keywords)
    # Générer le contenu de l'article avec OpenAI
    generated_content = generate_content_with_openai(prompt)
    # Publier l'article sur WordPress à la date spécifiée
    response = publish_to_wordpress(wpBaseURL, username, password, title, generated_content, None, "future", date_str)
    messagebox.showinfo("Succès", "Article publié avec succès !")
# Créer une fenêtre principale
root = tk.Tk()
root.title("Générateur d'articles WordPress")
# Ajouter des champs de saisie pour le titre, les mots-clés et la date
label_title = tk.Label(root, text="Titre de l'article:")
label_title.pack()
entry_title = tk.Entry(root)
entry_title.pack()
label_keywords = tk.Label(root, text="Mots-clés:")
label_keywords.pack()
entry_keywords = tk.Entry(root)
entry_keywords.pack()
label_date = tk.Label(root, text="Date de publication (AAAA-MM-JJ HH:MM:SS):")
label_date.pack()
entry_date = tk.Entry(root)
entry_date.pack()
# Ajouter un bouton pour générer l'article
button_generate = tk.Button(root, text="Générer l'article", command=generate_articles)
button_generate.pack()
# Lancer l'interface graphique
root.mainloop()

				
			

Explication du code :

  • Nous utilisons Tkinter pour créer une fenêtre principale root.
  • Nous ajoutons des champs de saisie (Entry) pour le titre, les mots-clés et la date de publication.
  • Nous créons une fonction generate_articles() qui sera appelée lorsque l’utilisateur clique sur le bouton « Générer l’article ».
  • La fonction generate_articles() récupère les valeurs saisies dans les champs, vérifie leur validité et prépare les données pour OpenAI.
  • Ensuite, nous utilisons la fonction generate_content_with_openai() pour générer le contenu de l’article avec OpenAI.
  • Enfin, nous utilisons la fonction publish_to_wordpress() pour publier l’article sur WordPress à la date spécifiée.

Étape 3 : Utilisation de l’API OpenAI pour la génération de contenu

Dans cette étape, nous allons créer le fichier openai_helper.py qui contient les fonctions pour utiliser l’API OpenAI et générer du contenu de manière créative.

				
					# openai_helper.py
import openai
def prepare_data_for_openai(title, keywords):
    prompt = f"Titre de l'article : {title}nMots-clés : {keywords}nn"
    return prompt
def generate_content_with_openai(prompt):
    openai.api_key = OPENAI_API_KEY
    response = openai.Completion.create(
        engine="text-davinci-002",  # GPT-3.5 (or higher) engine
        prompt=prompt,
        max_tokens=800  # Limit the length of the generated content
    )
    return response.choices[0].text.strip()

				
			

Explication du code :

  • La fonction prepare_data_for_openai() prend en entrée le titre de l’article (title) et les mots-clés (keywords).
  • Nous combinons le titre et les mots-clés pour former une requête de la forme « Titre de l’article : [titre]nMots-clés : [mots-clés]nn ».
  • Cette requête servira de « prompt » pour demander à OpenAI de générer du contenu basé sur les informations fournies.
  • La fonction generate_content_with_openai() prend en entrée le « prompt » préparé précédemment.
  • Nous utilisons l’API de GPT-3.5 (ou supérieur) d’OpenAI pour demander la génération de contenu basé sur le « prompt ».
  • La réponse contient le contenu généré, que nous retournons.

Étape 4 : Publication sur WordPress

Maintenant, nous allons créer le fichier wordpress.py qui contient les fonctions pour publier les articles sur WordPress.

				
					# wordpress.py
import requests
import json
import datetime
from requests.auth import HTTPBasicAuth
def publish_to_wordpress(wpBaseURL, username, password, title, content, categories, post_status, scheduled_date_str=None):
    WP_url = wpBaseURL + "/wp-json/wp/v2/posts"
    auth = HTTPBasicAuth(username, password)
    headers = {
        "Accept": "application/json",
        "Content-Type": "application/json"
    }
    payload = {
        "title": title,
        "content": content,
        "status": post_status,
        "categories": categories
    }
    if scheduled_date_str:
        payload["date"] = scheduled_date_str
    response = requests.post(WP_url, data=json.dumps(payload), headers=headers, auth=auth)
    return response

				
			

Explication du code :

  • La fonction publish_to_wordpress() prend en entrée l’URL de base de votre site WordPress (wpBaseURL), votre nom d’utilisateur (username), votre mot de passe (password), le titre de l’article (title), le contenu généré (content), les catégories (categories), le statut de l’article (post_status) et la date de publication planifiée (scheduled_date_str).
  • Nous créons un objet JSON (payload) contenant les informations de l’article.
    Si une date de publication est spécifiée, nous l’ajoutons à l’objet JSON.
  • Nous utilisons l’API REST de WordPress pour publier l’article en effectuant une requête POST avec les informations fournies.

Étape 5 : Intégration de toutes les étapes

Pour intégrer toutes les étapes précédentes, créez un fichier main.py :

				
					# main.py
import datetime
from config import OPENAI_API_KEY
from openai_helper import prepare_data_for_openai, generate_content_with_openai
from wordpress import publish_to_wordpress
from interface import run_interface
def schedule_and_publish_articles(wpBaseURL, username, password, articles_data):
    for article_data in articles_data:
        title, keywords, scheduled_date_str = article_data
        # Vérifier si la date est valide
        try:
            scheduled_date = datetime.datetime.strptime(scheduled_date_str, '%Y-%m-%d %H:%M:%S')
        except ValueError:
            print(f"Format de date invalide pour l'article '{title}'. Utilisez le format 'AAAA-MM-JJ HH:MM:SS'.")
            continue
        # Vérifier si la date est future
        now = datetime.datetime.now()
        if scheduled_date <= now:
            print(f"La date de publication de l'article '{title}' doit être future.")
            continue
        # Préparer les données pour OpenAI
        prompt = prepare_data_for_openai(title, keywords)
        # Générer le contenu de l'article avec OpenAI
        generated_content = generate_content_with_openai(prompt)
        # Publier l'article sur WordPress à la date spécifiée
        response = publish_to_wordpress(wpBaseURL, username, password, title, generated_content, None, "future", scheduled_date_str)
        print("Article publié :", title)
        print("Date de publication planifiée :", scheduled_date_str)
        print("Réponse de WordPress :", response.text)
# Liste des articles à publier avec leurs informations (titre, mots-clés, date de publication)
articles_data = [
    ("Titre de l'article 1", "Mot-clé 1, Mot-clé 2", "2023-08-15 12:00:00"),
    ("Titre de l'article 2", "Mot-clé 3, Mot-clé 4", "2023-08-22 12:00:00"),
    # Ajoutez d'autres articles ici avec leurs informations
]
# Informations de connexion à WordPress
wpBaseURL = "VOTRE_URL_WORDPRESS"
username = "VOTRE_NOM_UTILISATEUR"
password = "VOTRE_MOT_DE_PASSE"
# Publier les articles sur WordPress
schedule_and_publish_articles(wpBaseURL, username, password, articles_data)

				
			

Explication du code :

  • Nous utilisons la fonction schedule_and_publish_articles() pour planifier et publier chaque article spécifié dans la liste articles_data.
  • La liste articles_data contient les informations (titre, mots-clés et date de publication) pour chaque article à publier.
  • Nous vérifions la validité de la date de publication pour chaque article.
  • Ensuite, nous préparons les données pour OpenAI et générons le contenu de chaque article avec les fonctions prepare_data_for_openai() et generate_content_with_openai().
  • Enfin, nous publions chaque article sur WordPress à la date spécifiée à l’aide de la fonction publish_to_wordpress().

Exécution du programme

				
					python main.py
				
			

L’interface graphique s’ouvrira, vous permettant de saisir les informations pour chaque article. Une fois que vous avez rempli les informations, cliquez sur le bouton « Générer l’article » pour planifier et publier l’article sur WordPress à la date spécifiée.

Vous pouvez également utiliser la liste articles_data dans main.py pour spécifier les informations des articles que vous souhaitez publier. Vous pouvez ajouter autant d’articles que vous le souhaitez en respectant le format des données.

Conclusion

Félicitations ! Vous avez maintenant appris comment générer automatiquement des publications WordPress grâce à Python, OpenAI et une interface graphique avec Tkinter. Vous pouvez étendre ce projet en ajoutant plus de fonctionnalités, en améliorant l’interface utilisateur ou en personnalisant le contenu généré par l’IA. N’hésitez pas à explorer davantage Python, OpenAI et Tkinter pour créer des applications puissantes et créatives. Bon codage !

Pourquoi j’utilise un code externe au CMS wordpress ?

Grâce à un code externe, je ne suis pas limité par les fonctionnalités et les mises à jour du CMS (comme WordPress). Je peux actualiser et améliorer mon code indépendamment d des sites WordPress, ce qui peut être avantageux pour assurer la stabilité et la fiabilité du processus de génération de contenu.

PS: le code peut être adapté pour être utilisé avec plusieurs sites WordPress en modifiant quelques parties spécifiques.

Webmaster67 fera toujours tous pour vous faciliter la vie.