This is kinda bananas. Years ago I wrote a plugin to solve a problem I had. I wanted a simple WordPress plugin where I could insert a shortcode into a blog post, specify a series title, and have it automatically search up all the other blog posts that used the same shortcode and series title, and then insert a nice looking list of blog posts in that series in chronological order.
It was one of my first plugins, still available on WordPress.org – just hidden since it hasn’t been updated in almost a decade. It still works to this very day, if occasionally a little buggy. After several WordPress versions, it no longer properly displays the series title, which is a real shame.
On a whim, I tried using ChatGPT to generate some plugins.
Here’s an example of my old plugin and the new ChatGPT written plugin (in this order):
Default Series TitleSee how bad that was? It completely mangled the title.
Edit: Since publishing this post, I realized that I would have to choose between
- Leaving the old defunct plugin in place just to make a point about how it didn’t stand the test of a decade’s worth of WordPress updates, but then also leaving broken series titles sprinkled through my back catalog of blog posts.
- Go back through nearly 10 years of blog posts12 to change them over to the new plugin shortcode.
- Disable the old plugin, but have the new plugin work with the old shortcode as well as it’s own new shortcode, at the cost of losing an example of how bad the old plugin performed.
I went with option 3. Just take my word for it, it looked bad.
Now for the ChatGPT version:
Software Development with ChatGPTIt took me about an hour to whip up a working WordPress plugin with the same core functionality. I would break down the time I spent as follows:
But, that’s not all! You see, as I was writing this blog post, I realized it would be fun to include a pie chart to indicate the time I’d spent on this. Unfortunately, the plugin I had written to do exactly this many years ago has apparently completely given up the ghost. Thus, before I proceeded to this very sentence, I used ChatGPT to create a plugin for displaying custom pie charts!
Obviously, this plugin took a lot longer. The first few versions were having all kinds of problems between the HTML Canvas code and trying to figure out how to make sure the javascript was not loading too early or too late. In the end, I just asked it whether it was capable of even creating a pie chart – and it gave me a piece of workable javascript. I told it to refactor the plugin using this same javascript, and then it was a matter of fine tuning the result.
If you don’t know anything about writing WordPress plugins, you could probably use ChatGPT to create a very simple plugin. However, once it got slightly more complicated, it would likely require some troubleshooting to figure out what was happening. In the series plugin it took me a while to root through the WordPress functions to figure out that apparently ChatGPT was trying to use a function in a way that simply did not work. I explained to ChatGPT that that particular function could not operate in that way, explained how the data it was feeding into that function needed to be first modified, and then asked it to refactor the code. From that point forward, it started to look a lot better. There were some additional quirks – like putting more than one series title in a single post would only display one. I suspect these problems of ChatGPT taking a shortcut to generate code, hardcoding certain variables and names, not considering that it might need to operate more than once on the page, may be difficult for it to anticipate and address. Without some degree of WordPress development knowledge, I think a novice user armed only with ChatGPT would need to do a lot of refactoring, asking the program to generate the plugin all over from scratch many times, before arriving at a workable result. Then again, a million monkeys at typewriters, right?
I think ChatGPT could be great for creating relatively simple plugins like a series plugin, a pie chart plugin, or even a table of contents plugin. However, having seen how much time it cut out of the development process, I think it would be interesting to try developing an A/B testing plugin or more complicated plugin.
I think the next task to see if I can get it to generate QMK code for a keyboard, Arduino code, Raspberry Pi code, or a chrome extension.
I can already see some ways to improve both of the ChatGPT generated plugins used in this blog post. My series plugin included two arrows at the bottom so the reader could navigate to the prior or next post in the series. And I think it would be great if the chart plugin had a feature where I could specify the units, so the magnitude data would be included with the labels. I may try getting it to shoehorn these updates later…
If you see these reflected in the charts above, I must have already done it. :)
Software Development with LLMs