Develop: Find an issue that needs testing in Core Trac or in the Gutenberg GitHub repo. Test it, patch it, or otherwise move the issue along. Post a link to your work in the comments.
I tested out an issue on Gutenberg GitHub
Develop: Find an issue that needs testing in Core Trac or in the Gutenberg GitHub repo. Test it, patch it, or otherwise move the issue along. Post a link to your work in the comments.
I tested out an issue on Gutenberg GitHub
Blog: Tell us your hopes (or fears) for the future of AI in WordPress. Post your response on a WordPress website and link it in the comments.
I think this Tweet and video from Joe Hoyle sums it up pretty well.
The conversational nature of it is something I think has massive potential. I am a Web Developer and as such I know the general lexicon – row, column, font sizes, tables, hex colors… which might seem natural to us but is not to a wider variety of people. One comment I hear over and over again from clients (and designers) is that the WordPress admin is overwhelming, there are too many options, too many ways to break things (unintentionally and intentionally). This might help a lot.
Using something like AI makes it (potentially) more accessible to a wider variety of people, as great as we make any UI – adding another column to a table is going to be a different process from system to system. The words ‘Add another column’ will not be. Obviouvsly we know AI can ‘hallucinate’ and so this is not guaranteed. More on that next.
Well, many. AI or for many contexts LLM is not magic. They appear to be but they are not, however the expectation, even if known (myself included) is such that they are. As such we might over trust it to produce the right results even if they are not. The need to check these is essential.
Auto generated fluff. And there will be LOTS. If as above we can generate things more easily then this will be for good and bad and maybe both. If we can generate an essay from a simple prompt then we will, and a LOT. SEO spam, filter content, marketing gateway pages and much more Ray-Ban style comment spam than you can shake a Midjourney generated stick at.
This will undoubtedly be overwhelming, and also mean we will question the nature of truth, if anything can be AI and ‘made up’, what is ‘real’.
People will develop AI detectors which will also be AI powered and will be wrong and right in equal measure. See how it’s affecting education already. Maybe I’ve put this blog post through ChatGPT, maybe I asked it to fix the spelling and grammar, maybe I asked to to generate the entire thing, maybe my prompt was super vague…or super detailed? All are AI generated but some are orders of magnitude different to the other. Is it any less valid or true if I just want to fix my spelling. What if I was dyslexic? What if my English was poor. There are so many nuances it’s almost impossible to say AI is bad, AI is good, AI is false. It just is. All neatly bringing me around to the first post on this blog in 2004.
Or another way of putting it.
“All of this has happened before. All of this will happen again.” – Number Six
Blog: Share a WordPress tip or trick that has made your life easier. Post your response on a WordPress website and link it in the comments.
There are probably a couple for me, the first being ‘Plucks a certain field out of each object or array in an array.‘
$categories = get_the_terms( get_the_ID(), 'category' );
wp_list_pluck( $categories, 'term_id' );
Just feels like a really efficient way of just getting the info we need, in the above instance we just want and array of Category IDs that we could do something with. But this could be post IDs or child pages via query args.
Another is ‘Displays translated text that has been escaped for safe use in HTML output‘ This one is best if we might be using HTML in the string
<?php esc_html_e( 'Skip to main content', 'dogwonder' ); ?>
We could also use the following depending on the context in which the text is being used.
esc_html__( 'text to translate', 'text-domain' ) // To store a translated string in a variable, can be echoed later
__( 'text to translate', 'text-domain' ) // Needs echoing, no escaping
_e( 'text to translate', 'text-domain' ) // No escaping echos directly
In general it’s probably good practice to use either esc_html_e or esc_html__
It also has the benefit of preventing cross-site scripting (XSS) attacks.
Now you may never wish to translate your theme or plugin, but it’s not a bad idea to do the above if you ever think it might happen. It will save a huge amount of time later. You can then use a tool such as Poedit so scan your theme or plugin to create an empty translation file.
Develop: Take a screenshot of your IDE open to a recent WordPress project (be sure to obscure any identifying details) and share it on your preferred social account. Post a link to your post in the comments.
This is a recent project where I am building a category filter. Bonus feature, I’ve just got access to GitHub CoPilot X so included that in the screenshot as well.

Right now. whitehouse.gov
Built at speed, I think it was put together in 6 weeks (!!), when the new Biden administration came in. For me it was one of the first examples I had seen that demonstrated the potential power of the Gutenberg editor and block based development.
I’ve always been an admirer of the agency involved 10up. They presented their approach in a WordCamp in 2021. They presented it very well and it was an excellent overview of how they created the site, with bonus example code (abstracted as the whitehouse.gov code is not open source for obvious reasons).