In-Depth WordPress Tutorials for Developers • WPShout

wordpress development tutorials | wpshout staff

wordpress development tutorials | wpshout staff

Fred Meyer and David Hayes, coeditors

Welcome to WPShout, a website about WordPress development.

Below, you’ll find some of our favorite WordPress development tutorials, news, and resources.

Whether you’re just getting started or need a specific WordPress coding tutorial, you’ll find we tackle technical topics in an easy-to-understand, friendly way.

You’ll find some of our favorite WordPress tutorials below, and new posts most weekdays. Oh, and we’re Fred and David—we’re the WordPress developers who run this site.

P.S. If you haven’t already subscribed for our excellent weekly newsletter, then now’s the time.

These core WordPress development tutorials will get you started on the right foot.

Check out our most recently published WordPress development tutorials, thoughts and advice on working as a WordPress developer, and WordPress development news.

Posted In: Back-End Development
Difficulty: Beginner

This article introduces one of the most foundation topics in WordPress development: the server-side software that makes WordPress work. Often referred to as “the stack,” as this article explains the “LAMP stack” that most WordPress sites run on is just an initalism of the software packages of Linux, Apache, MySQL, and PHP. And that stack […]

Other Recent Articles

PHP for Word

PHP for Word

PHP for Word

October 8, 2020

nested conditionals sad

nested conditionals sad

nested conditionals sad

Debates have raged for ages—and still rage—about how to think about code on a WordPress site. Some people are fast-and-loose types who just want it working quickly as possible. For people in a hurry, the Code Snippets plugin is a quick and effective way to build and manage small quick “WordPress hacks.” While I still think file-system access is a…

October 8, 2020

As you might have noticed, in WordPress 5.5 you can now tell WordPress itself to keep specific plugins up to do. This is a great feature and one that I’m eager to turn on for more than a few plugins on more than a few sites (that is: all plugins on most of my sites). The security boon of knowing that all the plugins on all yours sites are just always up-to-date outweighs my light concern about one of those sites unexpectedly breaking with a bad update. (That totally happens, but quite rarely in my experience. And usually I can quickly solve the issues.)

Anyway, I thought it was interesting to see Chris Hardie’s exploration of how long it takes from the the time a plugin is updated until a WordPress site will have pulled-in that plugin update. Here’s the punchline:

As we’ve seen, it can take up to 12 hours between when a plugin author releases a new version and when your WordPress site tries to install that new version using auto-updates.

In some cases, it might be much faster, even just a few minutes. In other cases, it might be much longer, even a day or two.

That said I learned a lot from Chris’s article, so definitely check it out. The idea that WordPress’s has baked urgency awareness into core updates was new to me, and also really cool.

Visit →

October 5, 2020

I recently bought a drawing tablet (googling “Wacom Intuos Wireless Graphic Drawing Tablet (Medium)” should find it for you), because I had no way I liked to write out visual notes, especially timelines and complex process flows. It was one of the best purchases I’ve made in a long time—I wish I’d thought of it five years ago.

The immediate question after that was: What software to use it with? That’s where Autodesk Sketchbook comes in. It’s outstanding free software, and where I can imagine Photoshop or other paid alternatives being more feature-rich in some ways, Sketchbook has been everything I needed and beautifully optimized for a pen/tablet/one-handed keyboard UI.

It works with mouse too, obviously, so you can try it out without buying a tablet and see what you think. Prepare for a bit of a learning curve initially, and note the very helpful Alt, v, spacebar, and m keyboard shortcuts.

Visit →

October 1, 2020

In this text and video Quick Guide, we’ll walk you through the easiest way to duplicate posts and pages in WordPress, using the free and aptly named Duplicate Post plugin. This could be a post of any type—a Post, a Page, a Product, or anything else. So no matter what type of post you’re looking to clone, Duplicate Post can…

September 30, 2020

I have to admit that one of the places I feel I most conspicuously show my age is how little interest I have these days for the latest of web-dev hype. I would consider the “JAMstack” hype train one of those things. I’m vaguely aware of it, I know that a lot of people I respect as “cutting edge developers” are super into it. But I just don’t really care. (And only part of that is because it is 2020 )

Anyway, I’m writing because WordPress fearless leader Matt Mullenweg picked a bit of a fight with the proponents of the “JavaScript, API, & markup” methodology. (The amorphous cloud that that sounds like is indeed what JAMStack is.) And I found this story on that from Sarah Gooding over at the Tavern a good dispassionate distillation of the conversation. The whole thing is an interesting little bit of web development drama, but one of the more-compelling quotes was this:

“Matt is absolutely right that the usability and functionality of the Jamstack is lower,” Strattic co-founder and CEO Miriam Schwab said. “The Jamstack is a great example of technology that is incredibly appealing to developers, but the actual end users – writers, marketers, business owners – cannot use it. I’ve heard many stories of major companies that have come to the decision to adopt Jamstack for all web development as a company-wide policy, only to find that their marketing team has gone rogue and is installing WordPress sites in order to get their job done.”

(BTW: While I think Sarah did a good job balancing sides here, it is worth knowing that WP Tavern has been funded by Matt Mullenweg directly for quite a few years now.)

Visit →

September 24, 2020

Most people in WordPress know that there exists a “database” somewhere in the whole system. And they might also know that there are times you’ll need to do a little “search and replace” within that database. This is useful if you’re looking to change a string you’ve used across a whole array of posts, of if you’ve just moved your…

September 16, 2020

I admit I haven’t been following the concept and execution of Gutenberg Block Patterns very closely. Primarily this is because visual design has never been with a strong suit for me, nor (consequently) something I spent much time on. It is precisely for this reason that I’m so grateful for Birgit Pauli-Haack’s “WordPress Block Patterns Resource List.”

For those as out-of-it as me, here’s a summary of how they work:

“From the average user’s point of view, block patterns are predefined sections they can use to create layouts. These layouts can be something as simple as the book section from earlier in this article to the more complex pricing columns. With these patterns available, users will be able to create complex layouts at the click of a button,” and later, “The user sees something they want to use. They click on that pattern. It gets inserted into the post.”

I’ll totally admit reading this post doesn’t mean I should be your expert on block patterns, but I sure know a lot more about them than I did. And I hope they’ll help you too

Visit →

September 16, 2020

If you want to require a featured image before your WordPress posts will publish, then we’ve got the perfect plugin for you. Actually, we wrote it! In this Quick Guide, we’ll cover using our Require Featured Image plugin to make a featured image required on all your posts. Why You’d Want to Require a Featured Image on your WordPress Posts…

September 14, 2020

I need to A/B test lots of parts of, and I’ve been putting it off because I wasn’t sure which tool to use. Third-party SaaS solutions and WordPress plugins both feel to me like they’ll be a bummer to implement.

A recent conversation convinced me that Google’s A/B testing tool is the way to go. It piggybacks off Google Analytics (which, of course, we’re already using) so there’s no need to paste a bunch of new JavaScript snippets, trade API keys back and forth, install plugin folders, and so on. And it looks dead-simple to use, both from what my friend tells me and from what I’ve seen so far clicking around.

If you’re like me—if you’ve been putting off A/B testing stuff for like five years because it sounds like a bummer in practice—have a look at Google Optimize.

Visit →

September 10, 2020

I’ve somewhat intentionally given this little story about a new WordPress 5.5 feature a silly title. But as this story from Sarah Gooding over at the Tavern illustrates, people are already putting the new WordPress wp_get_environment_type() function to good use. And this story was doubly-interesting to me because I for one had no earthly idea that this new function existed.

The core idea of the wp_get_environment_type() function is pretty simple: let developers of plugins and themes disable dangerous features (say, sending notification emails) when they know that they’re on the “staging,” “development” version of a site. More than once in my life I’ve been pretty confused by why things were happening I didn’t expect, only to later it was because the staging or dev site was doing those weird things.

As you might guess, WordPress has to be told what your environment is. As you might also guess, you do that via a constant definition—WP_ENVIRONMENT_TYPE—in your wp-config.php. More details of that whole setup are in the announcement post for the feature.

What Sarah’s story covers is how that value is used in a new plugin by Roy Tanck to give you a little useful banner in the top-right on your admin bar. More than once I’ve absolutely done something on the Production site thinking it was a local development site. And this plugin would save me that heart-ache with a big blaring red “Production” label up there. If I were maintaining a “stock WordPress install” with all my favorite plugins, I’d surely add this one to the list.

Visit →

September 10, 2020

The topics of SQL and database performance optimization are important to a small percentage of WordPress sites. But when they matter, they matter a whole heck of a lot. It is in those situations that the WordPress plugin Query Monitor comes in. Maintained by John Blackbourn, Query Monitor is a great way to see what database queries were run on…

September 3, 2020

In this text and video Quick Guide, we’ll cover how to schedule a post update or a page update, so that your scheduled post revision is automatically set to go live at a particular time. Why You’d Want to Schedule Post or Page Updates Being able to schedule revisions to post or page content has a lot of possible uses.…

September 2, 2020

Ben Gillbanks has been a minor celebrity in my internet world for over a decade at this point. Even back in the 9rules days (if you knew what that was without looking, please sound off in the comments. I love OG interneters, as a general rule.).

Anyways, he’s still a mover-and-shaker in the WordPress world, and lately I’ve been watching with some interest his Jetpack alternative called Toolbelt. And with this story about a fun new feature, my interest is higher.

I’ll be frank, WordPress’s default “alternative icons for people without Gravatars” have always ranged from acceptable to bad. Back when I was making (bad) WordPress themes to teach myself PHP, figuring out a way to not-show default avatars while still showing ones that had been configured was a weeks-long project. (Thank you now-forgotten username on a now-forgotten forum for the pointers on that!)

Back on track: I just love how cool the Pixel Avatars are. You should give them a look, and read Justin’s story at the Tavern for even more details and history.

Visit →

August 27, 2020

Today I want to show off one of our favorite plugins here at WPShout. It’s all about making your site look great by giving you the right font, or if you’re fancy “typeface.” (I say that somewhat jokingly aware that there’s a distinction and that people care, but a little too far out of my depth to make the real…

August 26, 2020

Over on her blog at Lireo Designs, Deborah Edwards-Onoro has been collecting an amazing array of great content about web design and development for while. And I had no earthly idea. It was only when I randomly noticed that she’d been sharing some great links on Twitter that Deborah let me know there was a whole lot more where that came from.

It really do the posts Deborah puts together there a disservice to try to summarize her great summary. So I’ll just share one of the bits of color I appreciated in her post this week:

But please click through for more great content on HTML, WordPress, Accessibility and more.

And BTW, if you’re still into RSS, you might want to know that will get you JUST the weekly link collections. Obviously Deborah’s publishing other great content too, but the old “add /feed to a WordPress URL” trick is just so under-known that I want to highlight it for other dinosaurs (and hopefully some yunguns too) who use RSS feeds to follow cool websites.

Visit →

August 25, 2020

We use Slack to coordinate our work, and the Slack Notifications by dorzki plugin makes a very handy addition, by allowing us to create Slack alerts based on WordPress events on the WPShout site itself. We currently have it configured to alert the entire team whenever we publish a new post.

You can also use it across a number of other events—new comment, new user registration, updates available, and lots more. Overall, it’s a great free way to integrate your work on your WordPress site into your team’s workflows on Slack.

Visit →

August 21, 2020

I’m a sucker for small useful programmer features. While most of the WordPress peeps are chockablock with opinions on Gutenberg blocks vs PAGE BUILDER OF CHOICE, I just want you to know that you can now pass some variable around in your template files. If you’ve looked at the PHP files in a theme, you may be familiar with functions like get_template_part().

But the thing is, that part wasn’t aware of things a valued you’d saved to something like $cool_var_for_better_theming. And that was a little bummer. But it turns out all the obvious functions in WordPress now let you do things like pass a useful variable into them. And that means your theme can have fewer parts that just contain a little more smarts. And that’s something I will always be in favor of.

Read the full post for examples and other relevant details 🤓

Visit →

August 20, 2020

In this text and video Quick Guide, we’ll explain how to register custom taxonomies using the Pods plugin. Using Pods to create custom taxonomies is easy, and doesn’t require writing any PHP code of your own. What Custom Taxonomies Are, and Why to Create Them Taxonomies organize things. Dividing vehicles into “cars” and “trucks” is a simple example of a…

August 17, 2020

I’m always looking for tools that can give me a leg up on design, and I find that choosing a good color palette is one of the hardest and most subjective parts of designing a site. is one of a number of free tools that I find very helpful for this task, and it takes a unique approach that auto-generates palettes off real-life images, letting you choose a palette that matches, say, “star light” or “Fauvist photography.” I find that a really cool way to approach the problem, and the palettes harmonize well and are a great place to get started. Have a look.

Visit →

August 14, 2020

Our site has a lot of 404s stretching back across its long history. As I’ve started to work to clean them up, I flirted with simply 301 redirecting every 404ing link to the homepage. (There are a few plugins that do just that.)

Fortunately, I googled a bit and found that this is not so great from an SEO standpoint. The linked article explains the reasons why not as well as any:

When you do this blanket redirect, all those URLs are treated as 404s. So none of them spread value… On top of that, by 301 redirecting all your 404 pages, you throw away the opportunity to find real errors on your site and fix them.

That leaves me in the position of manually redirecting everything, which is a bummer—and something I still haven’t gotten to in the week or two since doing this research—but it’s good to know what actually is and isn’t good practice in this case.

Visit →

More Links to Cool Stuff


Leave a Comment