Demo: Thumbnail Archives (aka “Horizontal Archives”)

Roll your own!

Round Up: 18 Free Plugins to Help Troubleshoot and Debug WordPressI’ve written numerous tutorials explaining how to troubleshoot WordPress, plugins, email, and more. When investigating issues, diagnosing problems, and hunting bugs, troubleshooting is a critical core skill for any web developer. To help readers level up their tool belt, here’s a quick round-up of free plugins to help troubleshoot any [...]The Difference Between Taxonomies, Categories, and Tags (Oh My!)A common question for new WordPress users is, “what’s the difference between categories and tags?” Like everyone knows what a “category” is, but the idea of “tags” can seem very similar. And then you throw in related WordPress concepts like “taxonomy”, and things can get confusing very quickly. But no [...]Stay Logged in to WordPressI work from home so can afford to leave tabs open for each of my WordPress sites. That way I can jump on anytime and update or add new content very quickly. The problem I kept running into is that WordPress automatically logs out users after 48 hours. Which means [...]How to Disable Embeds for Any Specific URLsQuick tip: how to disable embeds for any URL(s). The other day I was adding URLs to a draft post in WordPress. Some of the URLs were for Twitter tweets. Checking a preview of the post on the front end, I was surprised that WordPress had automatically embedded the actual [...]How to Add Custom Code to WordPressThere are many books and tutorials that share useful code snippets for WordPress. For example, you can find hundreds of custom functions right here at You can also find them in my WordPress books, tutorials, and code snippets. For many code snippets and custom functions, the usage instructions will [...]Database Tip: Clean Up User-Agent DataI just finished up my latest book, Wizard’s SQL Recipes for WordPress. And it’s packed with over 300 time-saving code snippets for managing and optimizing your WordPress database. For example, one of the recipes from the book shows how to delete unwanted user-agent data from the WP comments table. This [...]How to Disable Gutenberg Styles on the FrontendBy default the Gutenberg Block Editor loads its default CSS/stylesheet on the front-end of your WordPress site. This is fine for most cases, but there may be situations where you want to disable the Gutenberg styles for whatever reason. For example, my free WordPress plugin, Disable Gutenberg, enables users to [...]Fix Site Health Error: The authorization header is missingWordPress Site HealthQuick post that explains how to fix the error, “The authorization header is missing”. This error may be found under “recommended improvements” in the WordPress Site Health tool (located under the WP menu ▸ Tools ▸ Site Health). When running a Site Health check, the “authorization header” warning happens when [...]How to Troubleshoot WordPress, Easy Step-by-Step GuideEasily hands down the most common thing that I find myself explaining to WordPress users is how to troubleshoot WordPress in order to find the cause of some issue. And it makes sense if you think about it. WordPress and all of its plugins and themes are made of code. [...]How to Check if Post has Taxonomy TermHow to Check if Post has Taxonomy TermSomething I did not know about when working with Custom Post Types and Custom Taxonomies. Normally when checking if a regular WP Post belongs to a specific category, we can use the WordPress function in_category(). But that does not work with Custom Post Types. To check if a CPT belongs [...]Is it okay to use plugins that are not current with latest version of WordPress?This plugin hasn't been tested with the latest 3 major releases of WordPressPeople often ask me whether it is safe to run plugins that are not tested with the latest version of WordPress. And it’s a good question, because software in general is something that you want to keep current and updated with all the latest. For WordPress plugins however, there are [...]Which Pricing Model Do You Prefer: One-Time or Recurring?WordPress Pricing ModelFor a long time, premium WordPress plugins and themes were sold as a one-time payment. So for example, if you wanted to buy a new WordPress theme, you would make a single purchase and own the theme indefinitely, with no future payments due. Then somewhere along the way, a recurring [...]WordPress uninstall.php file – The Complete GuideUninstall WordPress PluginWordPress plugins that clean up after themselves are pure awesome sauce. If you are developing a plugin that adds any sort of data to the WordPress database, it is important that the plugin removes any unwanted or unused data if and when the plugin ever is uninstalled. This complete guide [...]How to Add Custom Content to WordPress FeedsRSS Feed IconThere are numerous ways to add custom content to your WordPress feeds. If you’re not using a plugin, it’s possible to just add a code snippet to your theme’s functions.php file. For most cases, I think probably going the plugin route is the easiest way to add custom content to [...]Better Way to Add Inline ScriptsBetter Way to Add Inline Scripts (with Fallback)If you are a WordPress developer, you may have used the WordPress hook wp_print_scripts to add any necessary inline JavaScript. Alternately, you may have used the function wp_localize_script() to add your inline scripts. But did you know that not too long ago, WordPress added a new function for adding inline [...]Shortcode to Display Recent Posts on Any Post or PageWP Recent Posts WidgetWordPress provides a widget that can be used to display recent posts in any sidebar or widgetized location. Likewise many WordPress themes provide some sort of “recent post” functionality, so users can display their latest posts in specific locations around the theme. Such functionality is great and useful for displaying [...]MailOptin Review: WordPress Newsletter Signup Made EasyMailOptin ReviewOne of the few regrets anyone can have in an online business is the failure to collect email addresses of their visitors. Simply put, the failure to have a list. More often than not, you will hear people say, “the money is in the list” and that by itself is [...]List of WordPress Developers & Designers (2024)List of WordPress Developers & DesignersPreviously we posted a list of available WordPress Developers & Designers. Lots of great people and companies shared their information, but a lot has changed since then. So rather than try to contact everyone on the list and ask them to update their infos, here is a new post of [...]How to Disable CSS and JavaScript Added by PluginsDisable CSS and JavaScriptOne of the most annoying things in the WordPress universe are plugins and themes that don’t conditionally load their scripts and styles (i.e., JavaScript and CSS files). For example, you install a dashboard plugin and it loads its scripts in the entire Admin Area and the frontend. Instead, the developer [...]Display Your WordPress Site Statistics: Complete GuideWP Blog StatsJust to be crystal clear, this post is all about displaying basic statistics about your site, not about your visitors. So if you are thinking something like, “duh, just use Google Analytics or whatever,” then imagine a giant buzzer sound telling you that you’re incorrect. Sure, Google Analytics gives you [...]Official Resources for the Gutenberg Block EditorJust a quick post to share some recommended useful resources for anyone working with the new Gutenberg Block Editor. Our book Digging Into WordPress now links to this post, so readers can learn more and dive deep into Gutenberg. Or just bookmark for future reference. What does that mean? It [...]How to Selectively Enable Gutenberg Block EditorEnable Gutenberg Block EditorPreviously, we covered numerous techniques to disable Gutenberg. For example, you can disable Gutenberg on specific post types, user roles, post IDs, and so forth. But what about doing the opposite and conditionally enabling Gutenberg? For example, if Gutenberg is disabled by default, you could then selectively enable it on [...]About the “Warning! WordPress Encrypts User Cookies” Errorwp-config.php - Secret KeysUpgrading from older versions of WordPress is designed to go without a hitch, but depending on the setup and the two versions involved, you may encounter some hangups along the way. For example, if you are upgrading from a version of WordPress older than 3.0, eventually you may encounter the [...]Subscribe to Comments Plugin: Delete Data from DatabaseSubscribe to Comments PluginDuring the latest site redesign, I removed the Subscribe to Comments plugin. Wisely, the plugin does not delete any subscriber information from the database. So as a part of the site’s redesign slash clean-up, I wanted to export/save and then delete all subscriber information to decrease overall database size. After [...]Securing the WP REST APISecuring the WP REST APII think many WordPress users probably underestimate the amount of data that is made available via the REST API. Just about everything is available to anyone or anything that asks for it: posts, pages, categories, tags, comments, taxonomies, media, users, settings, and more. For most of these types of data, [...]How to Disable Gutenberg: Complete GuideDisable GutenbergGutenberg soon will be added to the WordPress core. This is great news for some, not so great for others. With 99.9999% (estimate) of all WordPress sites currently setup to work without Gutenberg, the massive changes barreling down the pike are going to affect literally millions of websites. And as [...]Display Custom Fields in GutenbergDisplay Custom Fields in GutenbergGutenberg is coming soon to your WordPress, whether you like it or not. Debate and drama aside, it’s time that we start looking for practical ways to adapt current WordPress sites to the many imminent changes brought to us by G7G. One of these changes involves Custom Fields. Currently, and [...]Gutenberg Block RecipesGutenberg Block RecipesI’ve been working on updating my collection of WordPress plugins for the imminent Gutenberg update. So far it has not required much time to learn, and the API is straightforward. It will however take significantly longer to integrate Gutenberg support into 20+ plugins. To help keep things organized, I will [...]Thoughts on GutenbergGutenberg WordPress PluginThere has been lots of discussion about the new WordPress “Gutenberg” project. Some people love it, some hate it, and most WP users probably have no idea about it. And that’s too bad, because it means many changes will be required for thousands of WordPress plugins and themes. We’re talking [...]Tips to Keep WordPress SecureWordPress SecureWith each passing day, strong security becomes more important. This article explains some ways to keep WordPress secure while improving the overall security of your WordPress-powered site. Most of the tips provided here are practice-based security steps that require no plugins or hacks. The idea here is that you don’t [...]Popular Posts ShortcodePopular Posts ShortcodeIn my recent post, DIY WordPress Popular Posts, I share a simple, two-step technique for tracking and displaying popular posts on your WordPress-powered site. That post describes everything needed to fully implement DIY popular posts, but some folks wanted an easier (more convenient) way to display the list of popular [...]DigWP Site RedesignDigWP Redesign v4.0After rocking our site’s previous design for nearly four years, it was time for a refresh. Actually complete overhaul is more like it, a top-to-bottom restructuring and streamlining of Going into the redesign, the goal was twofold: 1) visually keep things as focused and clean as possible, and 2) [...]DigWP Theme Updates!DigWP Theme UpdatesQuick post to announce updates for all DigWP themes, free and exclusive. All of our themes are current with the latest version of WordPress, and include lots of new features, bug fixes, and enhancements. 100% ready for action :) The free themes are all free and open-source for everyone, and [...]WordPress Post Navigation Redux (New Tags!)WordPress Post Navigation ReduxFor years WordPress post navigation has been possible thanks to a flexible set of five functions, including posts_nav_link(), next_post_link() and next_posts_link(). These navigational functions continue to work great in many WordPress themes, but there are newer, even more flexible functions available to theme developers. Introduced in WordPress 4, these new [...]Stop Ruining the WordPress Admin AreaPolluted WP Admin AreaI guess what I was trying to get at with my previous poll about too many plugins was the idea that a lot of WordPress sites that I see these days are just absolutely trashed in the Admin Area due to inconsiderate, poorly planned plugins and themes. For users, a [...]How to Remove Items from the WordPress ToolbarWordPress ToolbarThe WordPress Toolbar makes it easy for plugin and theme developers to add links and other items. This is great news if you find the added links useful; otherwise, the additional links may be more of a nuisance, cluttering up your current workflow. For example, the database-backup plugin UpdraftPlus adds [...]Complete Guide to WordPress Admin NoticesComplete Guide to WordPress Admin NoticesAs you work in the WordPress Admin Area, you’ll undoubtedly encounter “admin notices” that let you know about errors, updated settings, required actions, and so forth. Most default admin notices are provided by WordPress out of the box, but it’s up to plugins and themes to provide any custom notices [...]DIY WordPress Popular PostsDIY Popular PostsOver at my code snippets site, I keep track of the most popular posts and display a list in the sidebar. It’s an easy way to highlight the site’s best content and share top snippets with visitors. There are numerous plugins available for displaying your site’s popular posts, but they [...]Disable Open Sans Google Font on FrontendOpen Sans Google FontWorking on the 2020 theme for my book, WordPress Themes In Depth, I noticed that WordPress was including a stylesheet from the Google API. Closer examination revealed that the styles were adding the Open Sans font via Google Fonts. The font itself is great, but I could not figure out [...]How to Include Styles in WordPress Child ThemesWP Enqueue StylesThis DigWP tutorial explains the “new” way to include parent stylesheets in Child Themes. I put the word “new” in quotes because the technique actually has been around for years, but there are many developers and designers who still use the old @import way of adding parent styles. This tutorial [...]Poll: How Many WordPress Plugins is Too Many?Too Many PluginsA frequent question in the WordPress community is “how many plugins is too many?” We’ve heard responses that vary from “zero” to “no limit, man”. So for this DigWP Poll, I figured it would be interesting to see what people think about it. To give you a better idea, I’ve [...]Pro Version of Block Bad QueriesBBQ Pro - Block Bad QueriesBBQ Pro is the premium version of my free security plugin, Block Bad Queries. BBQ Pro helps keep your WordPress-powered site safe and secure by blocking bad URI requests. This helps to conserve precious server resources like memory and bandwidth. BBQ Pro runs silently in the background, checking all incoming [...]SES Pro – Ajax Powered Email Signup FormsSES Pro is a premium email newsletter plugin for WordPress. It is 100% shortcode-based with Ajax-powered signup forms that can be displayed anywhere. There are no monthly fees or limits on the number of subscribers, how many emails you can send, or anything else. It’s just a lightweight yet full-featured [...]Book Giveaway!To celebrate Thanksgiving, we’re giving away three copies of Digging Into WordPress! Winners will receive full access to the Members Area here at to download current versions of the book and all exclusive themes and bonus material.WordPress Themes In DepthSuper stoked to announce my new book, WordPress Themes In Depth! It covers the entire process of setting up, development, distribution, and everything in between. WordPress Themes In Depth is literally overflowing with over 450 pages of in-depth theme-building action. And it includes example themes and lots of project demos. [...]WordPress Backup and Restore Theme OptionsAfter taking the time to set a whole bunch of theme options, it’s nice to be able to make a quick backup of your theme settings. Many themes have this functionality built-in, but for themes that don’t, here is a plug-n-play snippet to create a “Backup/Restore Theme Options” page. You [...]H5 Theme UpdateTheme update! The H5 Starter Theme is all updated and afresh for your theme-building adventures. The previous version of H5 still works great, but there was a lot of room for improvement, especially with all of the new features and functionality made available in recent versions of WordPress. So now [...]Disable Default Dashboard Widgets in WordPressContinuing with tips for customizing the WordPress Dashboard, here is a look at one way to remove unwanted widgets and clean up the default WP Dashboard.DigWP Update – Version 3.8Digging Into WordPress update! The book is now current with the latest version of WordPress, 3.8 “Parker”. The Parker update is focused primarily on improving the appearance of the Admin Area, along with the usual blend of bug fixes and enhancements. As with all DigWP updates, the new version is [...]Bring Back Single-Column DashboardAfter updating to WordPress 3.8, the single-column Dashboard disappears with no options to bring it back. For years, users could set the number of columns in the Dashboard to suit their needs, but apparently some brilliant decision was made to just remove it. Personal opinions and feelings aside, here is [...]