Cr√©er un plugin fonctionnel et administrable en 1 minute gr√Ęce √† Chatgpt, c’est possible !!!

Cr√©er un plugin fonctionnel et administrable en 1 minute gr√Ęce √† Chatgpt, est-ce possible ?

Pas de suspense, h√© vous donne la r√©ponse : oui ! Sans aucun bug et int√©gralement fonctionnel en moins d’une minute ! Dicter l’√©nonc√© m’aura finalement pris plus de temps. De plus, comme quoi je n’y croyait pas vraiment, j’ai effectu√© ce test de g√©n√©ration de code et d’installation de plugin depuis mon t√©l√©phone Android, d’o√Ļ les captures d’√©crans. Il m’a fallu quelques minutes pour trouver une application pour copier le code g√©n√©r√©, enregistrer en un fichier PHP puis l’installer directement depuis l’administration de WordPress. Pas besoin de FTP.

Ma demande transmise à Chatgpt

Cr√©e le code pour cr√©er un plugin WordPress qui affiche une liste de sites web, dans la partie admin, une page de gestion du plugin o√Ļ l’on peut ajouter ou supprimer un lien, joindre une photo o√Ļ un screenshot du site web, un titre, une description, et √©galement possibilit√© de cat√©goriser et d’apposer des √©tiquettes afin de pouvoir les afficher ou trier selon notre volont√© sur une page en front-end ChatGPT

Message transmis √† Chatgpt, sans r√©fl√©chir √† la tournure de mes phrases, aux fautes d’orthographe ou la ponctuation…

Réponse de Chatgpt

Bien s√Ľr! Voici un exemple de code pour cr√©er un plugin WordPress qui affiche une liste de sites web dans la partie admin, avec une page de gestion du plugin o√Ļ vous pouvez ajouter ou supprimer des liens, joindre une photo ou un screenshot du site web, et fournir un titre, une description, ainsi que des cat√©gories et des √©tiquettes pour trier et afficher les sites web selon votre volont√© sur une page front-end :

Chatgpt réponse

Le code intégral que Chatgpt a généré en 1 fois !

phpCopy code<?php
/*
Plugin Name: Mon Plugin Sites Web
Plugin URI: http://www.example.com
Description: Plugin WordPress pour afficher une liste de sites web.
Version: 1.0
Author: Votre Nom
Author URI: http://www.example.com
License: GPL2
*/

// Crée la table personnalisée pour stocker les sites web
function wpse_create_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        title varchar(255) NOT NULL,
        description text NOT NULL,
        url varchar(255) NOT NULL,
        image varchar(255),
        categories text,
        tags text,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'wpse_create_table' );

// Enregistre le menu de gestion du plugin
function wpse_add_admin_menu() {
    add_menu_page(
        'Gestion des Sites Web',
        'Sites Web',
        'manage_options',
        'sites-web',
        'wpse_render_admin_page',
        'dashicons-admin-links',
        20
    );
}
add_action( 'admin_menu', 'wpse_add_admin_menu' );

// Affiche la page de gestion du plugin
function wpse_render_admin_page() {
    ?>
    <div class="wrap">
        <h1>Gestion des Sites Web</h1>

        <h2>Ajouter un nouveau site web</h2>
        <form method="post" action="<?php echo admin_url( 'admin-post.php' ); ?>" enctype="multipart/form-data">
            <input type="hidden" name="action" value="wpse_add_site">
            <label for="title">Titre :</label>
            <input type="text" name="title" id="title" required><br>
            <label for="description">Description :</label>
            <textarea name="description" id="description" required></textarea><br>
            <label for="url">URL :</label>
            <input type="text" name="url" id="url" required><br>
            <label for="image">Image :</label>
            <input type="file" name="image" id="image"><br>
            <label for="categories">Catégories (séparées par des virgules) :</label>
            <input type="text" name="categories" id="categories"><br>
            <label for="tags">√Čtiquettes (s√©par√©es par des virgules) :</label>
            <input type="text" name="tags" id="tags"><br>
            <?php wp_nonce_field( 'wpse_add_site', 'wpse_add_site_nonce' ); ?>
            <input type="submit" value="Ajouter">
        </form>

        <h2>Liste des sites web</h2>
        <table class="wp-list-table widefat fixed striped">
            <thead>
                <tr>
                    <th>Titre</th>
                    <th>Description</th>
                    <th>URL</th>
                    <th>Image</th>
                    <th>Catégories</th>
                    <th>√Čtiquettes</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                <?php
                global $wpdb;
                $table_name = $wpdb->prefix . 'sites_web';
                $sites = $wpdb->get_results( "SELECT * FROM $table_name" );
                foreach ( $sites as $site ) {
                    echo '<tr>';
                    echo '<td>' . esc_html( $site->title ) . '</td>';
                    echo '<td>' . esc_html( $site->description ) . '</td>';
                    echo '<td>' . esc_html( $site->url ) . '</td>';
                    echo '<td><img src="' . esc_html( $site->image ) . '" alt="" width="100"></td>';
                    echo '<td>' . esc_html( $site->categories ) . '</td>';
                    echo '<td>' . esc_html( $site->tags ) . '</td>';
                    echo '<td><a href="' . admin_url( 'admin-post.php?action=wpse_delete_site&id=' . $site->id ) . '">Supprimer</a></td>';
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </div>
    <?php
}

// Traite la soumission du formulaire pour ajouter un site web
function wpse_add_site() {
    if ( ! isset( $_POST['wpse_add_site_nonce'] ) || ! wp_verify_nonce( $_POST['wpse_add_site_nonce'], 'wpse_add_site' ) ) {
        wp_die( 'Erreur de vérification du formulaire.' );
    }

    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $title = sanitize_text_field( $_POST['title'] );
    $description = sanitize_textarea_field( $_POST['description'] );
    $url = esc_url( $_POST['url'] );
    $image = '';

    if ( isset( $_FILES['image'] ) && ! empty( $_FILES['image']['tmp_name'] ) ) {
        $upload_dir = wp_upload_dir();
        $image_data = wp_handle_upload( $_FILES['image'], array( 'test_form' => false ) );

        if ( isset( $image_data['url'] ) ) {
            $image = esc_url( $image_data['url'] );
        }
    }

    $categories = sanitize_text_field( $_POST['categories'] );
    $tags = sanitize_text_field( $_POST['tags'] );

    $wpdb->insert(
        $table_name,
        array(
            'title' => $title,
            'description' => $description,
            'url' => $url,
            'image' => $image,
            'categories' => $categories,
            'tags' => $tags
        ),
        array( '%s', '%s', '%s', '%s', '%s', '%s' )
    );

    wp_redirect( admin_url( 'admin.php?page=sites-web' ) );
    exit;
}
add_action( 'admin_post_wpse_add_site', 'wpse_add_site' );

// Traite la suppression d'un site web
function wpse_delete_site() {
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_die( 'Accès refusé.' );
    }

    if ( ! isset( $_GET['id'] ) ) {
        wp_die( 'ID de site web manquant.' );
    }

    $site_id = intval( $_GET['id'] );

    global $wpdb;
    $table_name = $wpdb->prefix . 'sites_web';

    $wpdb->delete( $table_name, array( 'id' => $site_id ), array( '%d' ) );

    wp_redirect( admin_url( 'admin.php?page=sites-web' ) );
    exit;
}
add_action( 'admin_post_wpse_delete_site', 'wpse_delete_site' );

// Affiche la liste des sites web en front-end
function wpse_render_frontend() {
    ob_start();
    ?>
    <div class="site-list">
        <?php
        global $wpdb;
        $table_name = $wpdb->prefix . 'sites_web';
        $sites = $wpdb->get_results( "SELECT * FROM $table_name" );
        foreach ( $sites as $site ) {
            ?>
            <div class="site">
                <h3><?php echo esc_html( $site->title ); ?></h3>
                <p><?php echo esc_html( $site->description ); ?></p>
                <a href="<?php echo esc_url( $site->url ); ?>">Visiter le site</a>
                <?php if ( ! empty( $site->image ) ) : ?>
                    <img src="<?php echo esc_url( $site->image ); ?>" alt="<?php echo esc_attr( $site->title ); ?>" width="200">
                <?php endif; ?>
                <div class="categories"><?php echo esc_html( $site->categories ); ?></div>
                <div class="tags"><?php echo esc_html( $site->tags ); ?></div>
            </div>
            <?php
        }
        ?>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode( 'site_list', 'wpse_render_frontend' );

Ce code cr√©e un plugin WordPress qui ajoute une page de gestion dans l’administration o√Ļ vous pouvez ajouter et supprimer des sites web avec leurs informations (titre, description, URL, image, cat√©gories et √©tiquettes). Il affiche √©galement une liste des sites web en front-end √† l’aide d’un shortcode [site_list].

Assurez-vous de cr√©er un fichier dans le dossier /wp-content/plugins/ avec le nom mon-plugin-sites-web.php et d’y coller le code ci-dessus. Ensuite, activez le plugin depuis le tableau de bord de votre site WordPress.

Free Research Preview. ChatGPT may produce inaccurate information about people, places, or facts. ChatGPT May 24 Version

Fin de la r√©ponse de Chatgpt et l√†, personne n’y crois

Vous avez le rendu de son travail juste en dessous, le site web de ma compagne y est affich√© “Aux 4 pattes”. Chatgpt m’a √©galement ajout√© un lien d’administration dans le backend o√Ļ l’on peut ajouter ou supprimer les liens.

En l’√©tat, ce plugin ne casse pas trois pattes √† un canard. J’ai oubli√© de mentionner “modifier”, donc la fonction pour modifier un site d√©j√† soumis n’est pas encore impl√©ment√©. La mise en page est √† revoir des deux c√īt√©s. Aucune gestion du seo etc..

Il a m√™me cr√©√© dans le code, ka requ√™te pour ajouter une nouvelle table dans la base donn√©e alors m√™me que je n’avais pas effectu√© cette demande !

Quoi qu’il en soit, cela reste une prouesse et un formidable outils pour les d√©veloppeurs en herbe pour apprendre et d√©buter dans le codage de plugin WordPress par exemple.

J’avais d√©j√† vu des vid√©os sur YouTube mais malgr√© tout, ils avaient des petits bugs √† g√©rer, des demandes de modifications suppl√©mentaires pour que le plugin fonctionne. Or l√†, je n’ai strictement rien demand√© de plus n’y fait aucune modification ! Un simple copier-coller et hop c’√©tait fini ! Je suis bluff√©, √©poustoufl√© ! Chatgpt bravo !

COMMENT ACTIVER COPILOT SUR VOTRE PC SOUS WINDOWS 11

Pour commencer, il vous faut donc rejoindre le programme Insider de Windows 11, puis installer la build adéquate pour profiter de Copilot. Voici comment vous y prendre :

  1. Ouvrez les Param√®tres de Windows 11 puis rendez-vous dans la section Windows Update
  2. Cliquez sur Programme Windows Insider puis sur le bouton Prise en main
  3. Si ce n’est pas d√©j√† fait, connectez-vous √† votre compte Microsoft
  4. S√©lectionnez le canal Preview puis cliquez sur Confirmer
  5. Red√©marrez votre PC
windows update insider