Steve Grunwell

Open-source contributor, speaker, and coffee snob

Tag: WordPress

A stylized, neon "Portland, Oregon" Old Town sign

Confidently Testing WordPress @ Cascadia PHP 2019

Last year, I was fortunate enough to spend a week and a half on the West Coast, splitting time between Portland, OR and San Diego, CA for the first installments of two new community PHP conferences: Cascadia PHP and WavePHP.

Sadly, WavePHP isn’t happening this year, but I’m thrilled to announce I’ll be returning to Portland for Cascadia PHP 2019!

Continue reading→

The Ledyard Building in Grand Rapids, Michigan

Confidently Testing WordPress @ WordCamp Grand Rapids 2019

Grand Rapids is one of those towns I just can’t get enough of: hot on the heels of Beer City Code 2019, I’m excited to announce I’ll be returning to Grand Rapids for WordCamp Grand Rapids 2019!

I’ll be giving my Confidently Testing WordPress talk, which has been making the rounds this year (it’s almost as if people need a bit of help getting into testing 🤔)

Continue reading→

A gray squirrel eating a nut

Two Talks @ WordCamp Kent 2019

WordCamp Kent has grown to be one of my favorite, must-attend WordCamps, and they keep accepting me to speak. This year, I’m fortunate enough to again be giving two talks at WordCamp Kent 2019!

Continue reading→

A pile of LEGO bricks spread out across a hardwood floor

Understanding the functions.php file in WordPress

If you’re just getting started with WordPress, there’s likely a lot of new terminology being thrown at you. Beyond fundamentals like “themes” and “plugins”, you’re probably seeing “actions”, “filters”, and a ton of code snippets with instructions like “just add this snippet to your functions.php file.”

Let’s take a step back and look at WordPress’ functions.php file; what it is, where it lives, and how it works. Once we understand those points, we’ll learn how to add snippets to our WordPress sites without having them accidentally overwritten.

Continue reading→

Various woodworking tools hung on a woodshop wall

Lightning Talk at WordCamp Grand Rapids 2018

I’ve written in the past about my love for WordCamp Grand Rapids, and I’m excited to announce I’ll be returning this year for WordCamp Grand Rapids 2018 on Saturday, June 30! Even better, I’ll be joining two of my colleagues — Chris Lema and Andrew Norcross — as Liquid Web (apparently) takes over the conference!

The theme for WordCamp Grand Rapids 2018 is around tools and services (an area I’m particularly passionate about), so I’m especially excited. This year, I’ll also be giving my first-ever lightning talk, Up and Running with WP-CLI.

Continue reading→

A Crash-course in PHP Namespaces for WordPress Developers

Way back in 2009, PHP 5.3 was released to the world and with it brought support for PHP namespaces — a way of easily separating your code from other developers’ code, which has since become the de facto way of encapsulating functionality across the PHP ecosystem.

With namespaces, multiple packages could use the same class and function names without conflict, because each one would operate in their own PHP namespaces. Unfortunately, many PHP developers who focus on WordPress development may be in the dark on this extremely useful language feature.

Continue reading→

The WordPress TinyMCE editor, modified so the block formats read "put whatever you want in here"

Customizing the WordPress TinyMCE Block Formats

This morning, I was scrolling through Twitter as I tried to wake up (as I do most every morning), when I came across a tweet from the wonderful Carrie Dils asking how to customize the WordPress TinyMCE block formats.

“That’s funny,” I thought to myself, “I used to do those customizations on client sites all the time. In fact, some of those customizations are even in my (now-abandoned) WordPress Starter Theme repo on GitHub!

I was able to throw together a quick gist to demonstrate how to pull off a <code> block format, but doing so reminded me how much of a struggle it was to figure that all out to begin with. In the interest of helping everyone else configure TinyMCE, here’s a quick breakdown

Continue reading→

A pile of LEGO bricks, ready to be constructed into something great (and blue).

Two new micro-libraries for WordPress

Last week, I found myself with two consecutive nights where my wife was busy with client work, so I found myself with some time after we put the toddler to bed. I had also had a stressful few weeks at work, where the things I was supposed to be working on kept getting de-prioritized so I could jump in and help other members of my team. Of course, ever-shifting priorities is nothing new for me (considering all but the last year and a half of my career has been in professional services), but it can still get frustrating when you just want to ship something.

A big part of what I do on a day-to-day basis is centered around WordPress. I work on the product team behind Liquid Web’s Managed WordPress and WooCommerce hosting platforms, and even when I’m writing Laravel applications they’re ultimately designed to support WordPress.

The more you work with WordPress, the more you see the same patterns repeating themselves. Registering scripts and styles, nonce verification, and custom meta boxes are things I can do in my sleep. Dig into third-party code and see yet another written using a Singleton pattern. Maybe the plugin author would appreciate if you refactored it to use namespaces, but of course there are no tests.

Sometimes you need a break, to just dig into something small enough that you can knock it out in a night or two but useful enough that you’re not coding for the sake of coding. That’s what I’ve done with two new micro-libraries: WP Cache Remember and One-Time Callbacks.

Continue reading→

WordTech! 2018

Update March 27, 2018: Speakers just received word that due to low ticket sales and sponsorship, WordTech! won’t be happening this year.

I’m proud to announce that I’ll be giving my Writing WP-CLI Commands That Work! talk at the inaugural WordTech! conference this Star Wars Day (May 4, 2018) in Toronto.

While this is a brand-new conference, I have a special attachment to it: Lead Organizer Peter MacIntyre (one of the organizers of Northeast PHP) reached out to Eric Mann and I all the way back in January of 2017 about organizing a new, development-focused WordPress conference; he noted that WordCamps often cater to the broadest range of developers, meaning it’s rare for a camp to have more than a few “advanced” development talks. While I’m a fan of development-oriented WordPress conferences (such as LoopConf), I don’t have the bandwidth to help organize a conference. I told Peter that I’d still be happy to submit when the CFP is open. Fast forward a year or so, and I’m excited to be among the inaugural batch of speakers!

Continue reading→

Egyptian pyramids

Deeper Testing with PHPUnit Markup Assertions

In a perfect world, every piece of software would have automated tests. As soon as we change a line, we as developers would know what, if anything, broke in our application and where we need to look to fix it. Unfortunately, we don’t live in a perfect world, so we get by doing what we can.

Still, we can look to our image of the perfect world and draw from it, molding and shaping what we do have to closer resemble what we’ve been longing for.

Continue reading→

Page 1 of 6

Be excellent to each other.