In-Depth WordPress Tutorials for Developers

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. 🙂
Our "Start Here" Guides
These core WordPress development tutorials will get you started on the right foot.
Recently Published
Check out our most recently published WordPress development tutorials, thoughts and advice on working as a WordPress developer, and WordPress development news.
RunCloud Review (2021): Thoughts After 2 Months of Hosting



Other Recent Articles



An Introduction to the WordPress PHP Coding Standards



Cloudways vs Runcloud: An Honest Review



Black Friday/Cyber Monday Roundup 2020: Deals on WordPress’s Best Products



WordPress Spam: Everything You Need to Know
Links and Quick Guides
State of CSS, 2020
Long time readers will know that I consider myself a CSS outsider. I learned how to do it about 10 years ago, and have just enough skills to get by today. So I read with interest Sacha Greif’s “The State of CSS 2020” document. While I found myself a little annoyed by the document’s “design fanciness” (particularly what I perceive as scrolljacking), the results were quite interesting.
On a quick-tour, the takeaway of “really learn Tailwind” is hard to miss. That said, I also found the “CSS in JS” discussion useful, and I was pretty cheered by the “overall satisfaction” chart that caps it all off (and is this post’s “featured image”). People are loving CSS! What an age! 🤓
A Quick Tour of Full-Site Editing in WordPress
If you saw my post from last week looking at full-site editing you might wonder what it’s like. And if you’re lazy/busy like me, you probably haven’t yet made a point of giving it a run-through on your own. So I really appreciated that WPShout friend Eric Karkovack took the time to install and write up the experience of fooling around with the Q theme.
I recommend you give the whole post a read-over, as he covers a number of thoughts and ideas around full-site editing I’d not considered. But this particularly caught my eye:
One thing to note is that, at this point, it appears custom templates will need to follow the WordPress template hierarchy naming conventions. That is, the slug of a custom template should match the name of its corresponding purpose within your theme (without the .php at the end).
For example, if you want to build a template to be used on your home page, its slug should be named
front-page
. Want to target the About Us page (yoursite.com/about-us/)? A template with the slug ofpage-about-us
will do the trick.
I guess maybe the death of WPHierarchy.com isn’t presently imminent. 🤪
Are you competing with WordPress.com?
You may have seen the headlines about how WordPress.com is coming for all the freelancers. For those that didn’t see it, WordPress.com (owned by a company called Automattic) recently announced that its “premium website building service” is now officially accepting customer applications for “websites starting at $4,900 USD.”
People who specialize in websites in this price range, understandably, are feeling a little threatened by the move. I saw a number of stories about it, but I particularly enjoyed the focus on recapping opinions that David Bisset used in his “Note” over at Post Status. So if you’re newly-aware of the whole thing, I recommend you start there. 🙂
Quick Guide: How to Connect UpdraftPlus to Dropbox



WordPress sites have lots of good backup options. But if you're looking to save money on file-storage (and you already have a Dropbox account) I can't recommend UpdraftPlus much more highly. It is quick-to-configure and very reliable as a place to keep a backup of your WordPress site. In this Quick Guide we'll cover the steps to connect UpdraftPlus to…
Armando & Full Site Editing Themes
This article from Justin Tadlock over at WP Tavern caught my attention over holiday break. While Justin’s been talking about full-site editing themes for a while, Armando was the first of these “future of WordPress themes” that I took a look at.
And that is… different. Somewhat to my chagrin — I am, remember, a lover of that weird and wonderful programming language, PHP — there is not really a lot familiar in Carolina Nymark Armando theme. The use of PHP in the theme is very stripped-down from what it has been in the past. For those not scared by such things, here’s the Github repository for it.
If you look around, you’ll notice that the only sign of the classic WordPress template hierarchy in the root directory of the theme is an index.php
file. And that all that file does is sometimes show an error message.
As to how it does work, I’ll leave that as an exercise for the reader. Mostly because I don’t fully understand it yet. If you’re interested in digger deeper in the arriving-later-this-year future of WordPress themes, its worth knowing that Carolina also has a whole site about full-site editing. Definitely worth at least a little study 🤓
Quick Guide: How to Replace Images or Media Files on a WordPress



If you find yourself working with a lot of images or other media files in WordPress, chances are good that at some point you'll need to change a file's content while still keeping links and image placement the same. The best way we've found to do this is with a free plugin called "Enable Media Replace". In this Quick Guide,…
Keep reading about How to Replace Images or Media Files on a WordPress →
Automattic Acquires MailPoet
Without knowing this news, MailPoet came up organically last night in a discussion we were having at the Fort Collins WordPress Meetup. Someone was looking to send an email newsletter from WordPress, and MailPoet was the option a few of us had heard of for that. (No one had used it.)
In light of that discussion, this headline caught my eye. Automattic acquisitions have a way of solidifying the success of other brands in the WordPress space, so I take this as a vote of confidence in the quality and value of MailPoet. I also thing the tie-in the story on the WP Tavern suggests with WooCommerce is both sensible and reasonable. I think this is probably a good move for Automatic.
(In this paragraph I might wax philosophical about how all of the WordPress ecosystems is eventually acquired, but I’ll keep it short. I have mixed feelings when independent things are bought my bigger companies. And in WordPress it’s the same as everywhere else.)
Have you used MailPoet? Love it? Hate it? “It seemed OK”? I’d love to hear it all in the comments 🤓
Quick Guide: How to Enlarge an Image in WordPress (Lightboxes!)



Whether you're writing about technical topics or something even more visually demanding like art, sometimes you just want to make a picture bigger in WordPress. That can mean a number of things, from how it appears on the page to what happens when you click it. We'll shortly cover the first case, and then spend most of our time introducing…
Keep reading about How to Enlarge an Image in WordPress (Lightboxes!) →
WordPress 5.6 Field Guide
Always a worthy read, the Field Guide for the next version WordPress—5.6—is here. The new theme, application passwords being integrated, and a load of incremental updates are the highlight features for me. Sure to be a solid release, but if you’ve got an older site you’re not paying attention to, the jQuery update remains a source of possible fear.
Anyway, read the whole post for details on that and more. WordPress 5.6 will be another solid release in what we can generously call a “weird” year, so props to all the people that have kept that train rolling 🥳
Quick Guide: Better Post Lists with CodePress Admin Columns



In this week's Quick Guide we're covering how to improve your "post lists" screens in WordPress. That is, we're taking control the look of your "posts", "pages", etc lists by changing what appears in those columns. We'll do that using that Admin Columns plugin (which was called CodePress Admin Columns until fairly recently 😉). You may know that out-of-the box…
Keep reading about Better Post Lists with CodePress Admin Columns →
Seasonal CSS
I love this little CSS stylesheet to give you a simple but pleasant little change of color on your site throughout the days of a year. James Stanley’s little project is a better-version of some of the first WordPress code I ever wrote, so the concept is very near to my heart.
The code idea is pretty simple: take a knowledge of the day of the year it is and find a set of colors that evokes the day. When I did it back in the day, I used PHP with a set of sine and cosine waves that I thought looked pleasant. Knowing more about colors than I do, this project is doing some clever “HSL” math.
Better Blogging with the Hemingway App
I was recently talking to a friend about new projects for Writers.com. He suggested developing a writing clarity checker “like the Hemingway app.” I’d heard of Hemingway the writer, but not of an app by that name, so I checked it out. It’s very cool.
The Hemingway app takes any English text, and finds the parts of it that are densely written, that use the passive voice, that use adverbs, and so on. The web app is free; there’s also a desktop version I haven’t tried.
If you’d like a quick and easy writing quality check on your own blogging—or other kinds of writing—this is a great, free place to start.
Quick Guide: How to Edit the Author Slug in WordPress



"Author archives" are one of a number of names you might call the page where WordPress shows your (as opposed to other authors') posts. And by default WordPress will put the /author/ URL segment into your slug. Personally I think that's a good name for it. But not everyone agrees, and that's where the Edit Author Slug plugin comes in.…
Keep reading about How to Edit the Author Slug in WordPress →
Quick Guide: How to Change WordPress Post Types with Post Type Switcher



From time to time, you’ll need to change the post type of one or more of your WordPress posts. In this Quick Guide, we'll explain how to change a WordPress post's post type using a handy plugin called Post Type Switcher. Why to Change the Post Type of a WordPress Post Needing to change post types in WordPress isn't all…
Keep reading about How to Change WordPress Post Types with Post Type Switcher →
What’s new in PHP 8?
For those who don’t know, WordPress run on PHP on the server. This has been true for all of WordPress’s life, and remains so. For the most parts, this dependence on the PHP language has been an interesting tidbit. But in the next few weeks the next major version of PHP is coming out, and it’ll have a big impact.
In a “major version” release, backwards compatibility is often not guaranteed. More than not-guaranteed, I’d even say that “breaking backwards compatibility” is usually the *reason* for a major version release. (WordPress generally doesn’t do semantic versioning, and so this system doesn’t apply quite the same in WordPress itself or its plugins/themes ecosystem as it does for PHP and most other programming-things.)
Anyway, for those of us trotting along behind, it’s good to keep some sense of what’s happening in the new version of PHP. That is precisely what I think this article from Brent Roos does a good job of: quickly moving through the big features and giving you a taste of what’s to come. Check it out!
Quick Guide: Turn on Debugging in WordPress: WP_DEBUG



One could (and perhaps I should) write a whole course on "how to debug in WordPress." This (unfortunately) isn't that post, but rather a quick summary of the best first step in debugging WordPress. It is almost the one step you MUST take if you'd going to debug just about anything in WordPress: make sure WordPress is showing the errors…
Keep reading about Turn on Debugging in WordPress: WP_DEBUG →
CSS Grid Generator
Frequent readers my recognize me as the not-great-at-CSS person here at WPShout. So for me, this Interactive CSS Grid Generator from Layoutit! is just such a welcome relief. I can (and have) learned all the different bits of markup and orders for different CSS grid properties. But I also ALWAYS have to look them up when I want to use them.Which one goes first? What’s that one actually called? All those sorts of questions.
That what makes this tool so cool. I can stare at the Grid it’ll create, edit it with a much-simple set of interface elements, and then just pull the markup that I’ll need given the final layout I selected. It is just SO COOL! 🤯
An Overview of CDNs
If you’ve been around WordPress for long, you’ve likely heard of a “CDN.” A CDN, or content-delivery network, is one of the most common parts of speeding up a WordPress site, especially for visitors who are far away from where your site is hosted. But the way this works is often a blackbox to people I talk to. That’s where this great article over at web.dev from Katie Hempenius. She explains all the bits of CDNs I already knew, and much more beyond.
And throughout the writing is crisp and very clear. For those too lazy to read the whole thing—trust me, I TOTALLY understand—here’s an example of her clarity, explaining the highest-level concept—how CDNs help with site performance:
At a high-level, the performance benefits of CDNs stem from a handful of principles: CDN servers are located closer to users than origin servers and therefore have a shorter round-trip time (RTT) latency; networking optimizations allow CDNs to deliver content more quickly than if the content was loaded “directly” from the origin server; lastly, CDN caches eliminate the need for a request to travel to the origin server.
Quick Guide: How to Remove the Date from a WordPress Post URL



So, you want to remove the date from your WordPress post URLs? I get it. Those /2016/07/09/post-slug URLs that seemed pretty cool when you (or someone else) set it up get old. The primary reason those date URLs are an issue: when you update that post, what should you do? Leave it's URL looking old? Move it to the new…
Keep reading about How to Remove the Date from a WordPress Post URL →
Quick Guide: Quickly Add Code Snippets in WordPress



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…