Day 18 – Post from the App

Prompt 18/20

Blog: Download the WordPress Mobile app and post a post from the app about your experience posting from the app. Post a link to your post in the comments.

It’s been a while as I used to have the mobile app. Didn’t really ever use it. Didn’t blog enough to justify tbh.

So far it’s pretty good. Took me a while to orientate, the formatting buttons are below the block and some block functions are off screen due to real estate. But after a couple of minutes it seems pretty good.

Block insertion is good. I can add new blocks pretty easily.


Unfortunately appears there was a few bugs on the app, I think maybe because I am on a hosted solution via login? So I’e switched to desktop to finish this post. But if that was sorted I can see this being a good solution, it seems to have all the things you have on desktop in a tiny space, very well designed, easy to use. I wouldn’t use it for long form writing, but for quite posts / edits this is perfect. I shall keep it on my phone.

Day 16 – AI

Prompt 16/20

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

Day 15 – Share a WordPress tip or trick

Prompt 15/20

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.

Day 14 – Take a screenshot of your IDE 

Prompt 14/20

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.

Screenshot of my IDE (Integrated development environment) showing a recent project where I am building a categories filter list

Day 13 – What is your favorite website built in WordPress right now

Prompt 13/20

Right now.

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 code is not open source for obvious reasons).

Day 12 – ACF

Prompt 12/20

Blog: What is your favorite plugin in the WordPress Plugins Directory? Tell us about it on your WordPress website and link to it in the comments.



We used to do all kinds of weird hacks with WordPress before ACF (Advanced Custom Fields) was released in 2012, using category archives as content hubs, tag clouds as navigation, hard-coded stuff everywhere…

Sure, there were meta box options out there and some custom database solutions, but nothing on the level of what Elliot Condon achieved with Advanced Custom Fields.

WordPress + ACF transformed what were essentially simple blogs into proper CMSs. It was released around the same time I started freelancing, which allowed me, as a fledgling business, to offer so much more as a WordPress developer.

For many years, I had been building what were essentially blogs with a few content pages for clients, but ACF opened up so many possibilities. Before that, you really needed to use something like Rails or Drupal to create ‘proper’ websites. Then came ACF.

In conjunction with custom post types and custom taxonomies, it supercharged WordPress and was incredibly easy to use. The documentation was amazing, and the support was incredible. The original pro licenses for repeater, flexible content, gallery, and options, priced at $25 (AUD), made even more things possible. It not only benefited me, but also empowered my clients to have more control over their own content without having to ask someone else to modify hard-coded values.

Since 2012, it has been the first plugin I install on every site, and I still do so to this day.

Day 11 – 2003

Prompt 11/20

WordPress was launched 20 years ago on May 27, 2003. Share a memory, a picture, or tell us a story about where were you in 2003. (If you weren’t born yet, tell us that too.) Post your response on a WordPress website and link it in the comments.

I was a ‘Web Development Executive’ at a London Publishing company in 2003, I maintained the corporate website at the time, mostly a mixture of and HTML. Most likely using some gigantic CRT monitor and a Windows XP machine. I think I was using Dreamweaver maybe at this point, or maybe Frontpage 98?

I must have know a little about PHP as I apparently bought this in late 2001.

Day 10 – WordPress Roadmap

Prompt 10/20

Blog: Check out the WordPress Roadmap. What upcoming WordPress projects are you most excited to see happen? Post your response on a WordPress website and link it in the comments.

For me, that would be Interactivity API. Now, I am not the biggest fan of React. I don’t really get it (or have really found many solid use cases where it would be necessary). I feel it’s bloated and delivers a degraded experience for end users, especially those on low powered devices. It also adds a ton of overhead for stuff we get for free like the back button.

I realise the slight irony here as I am using the WordPress editor to write this, powered by React. There I will give it its dues. It makes sense in a context like this, we want state, we want reactivity. For rendering some text on a page…..less so.

That’s a helluva long way of stating I for one am looking forward to the Interactivity API. I don’t fully understand it, but something tells me this is likely to be huge. The ability to add interactivity via an API and not some huge framework coming down the pipe seems like a sensible and powerful addition to the WordPress toolkit. In particular these goals of the project please and excite me:

The main goal of the Interactivity API is to provide a standard and simple way to handle the frontend interactivity of Gutenberg blocks.

Block-first and PHP-first

Declarative and reactive: The API must use declarative code, listen to changes in the data, and update only the parts of the DOM that depend on that data.

Performant: The runtime must be fast and lightweight to ensure the best user experience.

PHP wooooo!

Additionally the code example is something that makes sense to this ageing front-end developers brain.

// view.js file
import { store } from "@wordpress/interactivity";
  actions: {
    toggle: ({ context }) => {
      context.isOpen = !context.isOpen;

<!-- Render.php file -->
<div data-wp-context="{ 'isOpen': true }">
  <p id="p-1" data-wp-show="context.isOpen">
    This element is now visible!

I personally use ACF for developing blocks, and although I don’t know what they think about this. I don’t see why it would not be possible to increate this into ACF PRO blocks

Check out the demo, it might be simple but through in something like the Page Transition API and I feel we can get an app like experience with these two APIs.

Day 9 – favorite memory

Prompt 9/20

Tell us about your favorite memory that includes WordPress or the WordPress community. Post your response on a WordPress website and link it in the comments.

There are many, but one stands out more than others.

When I used to work at an agency, we once had a meeting at a large financial institution and a request was made from one high-flying trader:

‘Our blog (WordPress) …. can we turn it into a book’

Well as it happened my colleague had previously worked on something that would take a HTML file and output a PDF. I had contributed some of the code, mostly around theming and CSS (we used a library called PrinceXML that allowed you to use HTML & CSS to generate the PDF).

So we were able to say with pretty high confidence, yes, yes we can make a book out of your blog.

And so it happened; we set up a special WordPress template to output the entire blog in one page, saved it as .html and then put it through Bookler to generate a PDF. With that we could take it to something like Lulu and get back a paperback book delivered. I had to figure out how to get an ISBN, but managed that somehow.

It’s even, and I have no idea how, present on Amazon.

Photo of the inside of a book generated from a blog
2023 2022 2021 2020 2019 2017 2016 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004