Comment créer des outils d’IA avec WordPress en 5 minutes !

Outils

Pourquoi créer des outils en ligne ?

1. Obtenez plus de trafic

2. Créer des leads

3. Monétiser votre site internet

Comprendre la structure des outils

1. Créer une page wordpress

2. Ajouter un code HTML

3. Implémentez une fonction wordpress

4. Connectez-vous à l’API OpenIA

Générez une clé API OpenAI 

Étape 1 : Ajouter la fonction d’appel API

Qu’est-ce-que le plugin WPCode ?

Installation et Activation du plugin

Ajouter l’appel à l’API OpenIA

function youtube_titres() {
    // Récupérer le sujet de la requête AJAX
    $prompt = $_POST['prompt'];

    // URL et clé de l'API OpenAI
    $api_url = 'https://api.openai.com/v1/chat/completions';
    $api_key = 'sk-xxx';  // Remplacer par votre clé d'API OpenAI

    // En-têtes pour l'API OpenAI
    $headers = [
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $api_key
    ];

    // Corps pour l'API OpenAI
    $body = [
        'model' => 'gpt-3.5-turbo',
        'messages' => [['role' => 'user', 'content' => $prompt]],
        'temperature' => 0.7
    ];

    // Arguments pour l'API HTTP de WordPress
    $args = [
        'method' => 'POST',
        'headers' => $headers,
        'body' => json_encode($body),
        'timeout' => 120
    ];

    // Envoyer la requête
    $response = wp_remote_request($api_url, $args);

    // Gérer la réponse
    if (is_wp_error($response)) {
        $error_message = $response->get_error_message();
        wp_send_json_error("Something went wrong: $error_message");
    } else {
        $body = wp_remote_retrieve_body($response);
        $data = json_decode($body, true);

        if (json_last_error() !== JSON_ERROR_NONE) {
            wp_send_json_error('Invalid JSON in API response');
        } elseif (!isset($data['choices'])) {
            wp_send_json_error('API request failed. Response: ' . $body);
        } else {
            wp_send_json_success($data);
        }
    }

   wp_die();
}

add_action('wp_ajax_youtube_titres', 'youtube_titres');
add_action('wp_ajax_nopriv_youtube_titres', 'youtube_titres');
 $prompt = $_POST['prompt'];

Publier l’extrait de code

Étape 2 : Créer la page d’outil

Installation et activation d’Elementor

Créer une nouvelle page avec Elementor

Ajout de HTML personnalisé dans Elementor

<div id="text-generation-tool">
    <input type="text" id="topic" placeholder="Quel est le sujet de votre vidéo ?">
    <button id="generate-button">Générer des titres</button>
    <div id="result-container" style="display: none;">
        <div class="result-wrapper">
            <div class="result-content">
                <textarea id="result" readonly></textarea>
            </div>
            <div class="copy-button-container">
                <button id="copy-button">Copy</button>
            </div>
        </div>
    </div>
    <div id="loading" class="loader" style="display: none;"></div>
</div>

<style>
    #text-generation-tool {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        font-family: Arial, sans-serif;
    }

    #topic {
        width: 100%;
        padding: 15px;
        margin-bottom: 20px;
        font-size: 16px;
        border-radius: 5px;
        border: 1px solid #ddd;
    }

    #generate-button {
        display: block;
        width: 100%;
        padding: 15px;
        margin-bottom: 20px;
        font-size: 16px;
        border: none;
        border-radius: 5px;
        color: #fff;
        background-color: #ffbd59;
        cursor: pointer;
        transition: background-color 0.3s ease;
    }

    #generate-button:hover {
        background-color: #000;
    }

    #result-container {
        display: none;
        margin-bottom: 20px;
    }

    .result-wrapper {
        position: relative;
        overflow: hidden;
    }

    .result-content {
        display: flex;
    }

    #result {
        flex: 1;
        height: 400px;
        padding: 15px;
        font-size: 16px;
        border-radius: 5px;
        border: 1px solid #ddd;
        background-color: #f9f9f9;
    }

    .copy-button-container {
        margin-top: 10px;
        text-align: right;
    }

    #copy-button {
        padding: 8px 12px;
        font-size: 14px;
        border: none;
        border-radius: 5px;
        color: #fff;
        background-color: #3498db;
        cursor: pointer;
        transition: background-color 0.3s ease;
    }

    #copy-button:hover {
        background-color: #2980b9;
    }

   
    .loader {
        display: block;
        margin: 50px auto;
        border: 16px solid #f3f3f3; /* Light grey */
        border-top: 16px solid #3498db; /* Blue */
        border-radius: 50%;
        width: 50px;
        height: 50px;
        animation: spin 1s linear infinite;
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
</style>

<script>
    document.getElementById("generate-button").addEventListener("click", function(e){
        e.preventDefault();
        
        
        var generateButton = document.getElementById("generate-button");
        
        if (generateButton.disabled) {
            return; // Prevent multiple clicks while content is being generated
        }
        
        generateButton.disabled = true;
        
        
        
        var topic = document.getElementById('topic').value;
        var prompt = "génere moi 10 titre youtube sur le sujet : " + topic;
        var loading = document.getElementById('loading');
        var result = document.getElementById('result');
        var resultC = document.getElementById('result-container');

        


        

        loading.style.display = 'block';
        result.style.display = 'none'; 
        resultC.style.display = 'none';
        

        var formData = new FormData();
        formData.append('action', 'youtube_titres');
        formData.append('prompt', prompt);

        fetch('/wp-admin/admin-ajax.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            loading.style.display = 'none';
            if(data.success) {
                result.value = data.data.choices[0].message.content; 
                result.style.display = 'block'; 
                resultC.style.display = 'block';
                generateButton.disabled = false;
            } else {
                result.value = 'An error occurred: ' + data.data;
                result.style.display = 'block'; 
                resultC.style.display = 'block';
                generateButton.disabled = false;
            }
        })
        .catch(error => {
            loading.style.display = 'none';
            result.value = 'An error occurred: ' + error.message;
            result.style.display = 'block'; // show result textarea
            resultC.style.display = 'block';
            generateButton.disabled = false;
            
        });
    });
    
    var copyButton = document.getElementById('copy-button');
    copyButton.addEventListener('click', function() {
        var result = document.getElementById('result');
        result.select();
        document.execCommand('copy');
        
    });
</script>

Enregistrez votre page !

Étape 3 : Optimiser notre outil

Pourriez-vous m'aider à concevoir une interface plus propre et plus professionnelle pour mon outil ?

Bonus : monétisez vos outils !

1. Modèles d’adhésion :

2. Publicités et marketing d’affiliation :

3. Création d’outils en tant que service indépendant :

4. Créer un SaaS avec WordPress :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut