in Dagelijks, Tech

Een WordPress plugin maken met ChatGPT

Ik werd vanochtend wakker en zou — zoals elke dag — een nieuw artikel schrijven en vroeg me toen af hoeveel woorden ik nu eigenlijk in totaal geschreven heb geschreven?

Hoe kom je daar makkelijk achter? Of hoe maak je dat makkelijk inzichtelijk?

Aan de linkerkant van mijn site vind je onder Links al een verwijzing naar Alle artikelen.

Dit is een pagina die alle gepubliceerde artikelen netjes per maand groepeert: met datum en titel. ChatGPT heeft me al eens geholpen om dit in een template weer te geven, want dat zit niet standaard in WordPress.

En ik bedacht me dus dat ChatGPT me vast ook wel kon helpen met deze nieuwe vraag die ik had én deze zelfde pagina zou natuurlijk ook een goeie plek zijn om zo’n stukje dynamische content te publiceren. Want die getallen veranderen natuurlijk elke dag.

Dat moet ChatGTP vast kunnen.

En of ChatGPT dat kan. Om 8:49 opende ik ChatGPT en om 9:06 had ik een nagelnieuwe werkende WordPress plugin. Het is ongekend.

A few moments later.

In het kader van openheid en ter lering en vermaak kun je alle vragen die ik stelde aan ChatGPT hier terug lezen.

Hier is de (uiteindelijke) code:

<?php
/*
Plugin Name: Word Count Plugin
Description: Toon het woordaantal, aantal gepubliceerde berichten en gemiddeld aantal woorden per bericht in een tabel.
*/
function display_word_count() {
    global $wpdb;
    // Calculate the total word count
    $total_word_count_query = "SELECT SUM(LENGTH(REPLACE(REPLACE(REPLACE(post_content, '<!--', ''), '-->', ''), '</p>', ' ')) - LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(post_content, '<!--', ''), '-->', ''), '</p>', ' '), ' ', '')) + 1) AS word_count FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish'";
    $total_word_count = $wpdb->get_var($total_word_count_query);
    
    // Calculate the number of published posts
    $published_posts_query = "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish'";
    $published_posts = $wpdb->get_var($published_posts_query);
    
    // Calculate the average words per post
    $average_words_per_post = ($published_posts > 0) ? round($total_word_count / $published_posts) : 0;
    // Format the numbers with dots for readability
    $total_word_count_formatted = number_format($total_word_count, 0, '.', '.');
    $average_words_per_post_formatted = number_format($average_words_per_post, 0, '.', '.');
    // Create an HTML table to display the statistics in Dutch
    $output = '<table>';
    $output .= '<tr><th>Statistiek</th><th>Waarde</th></tr>';
    $output .= '<tr><td>Totaal Woordaantal</td><td>' . $total_word_count_formatted . '</td></tr>';
    $output .= '<tr><td>Aantal Gepubliceerde Berichten</td><td>' . $published_posts . '</td></tr>';
    $output .= '<tr><td>Gemiddeld Aantal Woorden Per Bericht</td><td>' . $average_words_per_post_formatted . '</td></tr>';
    $output .= '</table>';
    echo $output;
}
add_shortcode('word_count_stats', 'display_word_count');

Plugin

In het kort: ChatGPT heeft een stukje PHP code gegenereerd die ik in de /plugins directory van mijn WordPress installatie zet, dit maakt de plugin zichtbaar in het Plugins menu in WordPress waar ik de plugin vervolgens nog moet activeren. Hierna kan ik de specifieke shortcode (zie ChatGPT geschiedenis) gebruiken in een post die de daadwerkelijk statistieken laat zien.

Nagelnieuwe plugin

En dat ziet er dan zo uit.

Exclusief deze post natuurlijk

Conclusie

Ik moet deze plugin misschien nog wat verder oppoetsen en controleren of er geen lekken in zitten (het doet natuurlijk ruwe SQL queries naar mijn database). En misschien moet ik het nog een andere naam geven. En er zijn vragen te stellen bij hoe correct de statistieken zijn: ik denk dat de plugin bijvoorbeeld ook hyperlinks telt als geschreven woord, en je kan je afvragen in hoeverre dat een zelf-geschreven woord is.
En er zijn natuurlijk 1000 andere WordPress plugins die dit ook allemaal nog veel beter kunnen.

Allemaal open eindjes. Maar daar gaat het niet om, waar het om gaat is dit.

Misschien ben jij die rockstar 10x programmeur die dit ook in 15 minuten had kunnen maken, maar zo’n plugin vanaf scratch maken had mij zelf een hele ochtend gekost. ChatGPT is een uitmuntende tool voor precies dit soort programmeer taken en dat wou ik hiermee nog eens een keer aantonen.

Ik wil hier wat over zeggen!

Reactie

Webmentions

  • Instajan - mijn eigen Instagram - Jan van den Berg

    […] Dat ChatGPT zoiets goed kan wisten we natuurlijk al. […]

  • Het Independent Publisher thema - Jan van den Berg

    […] natuurlijk heb ik zelf ook diverse aanpassingen aan het thema gemaakt, kleuren, fontjes, plaatjes, plugins, breedte en meer om het naar mijn smaak te maken. Zoals je je huis ook naar je smaak inricht en wat […]