Save 25% on Wizard’s SQL for WP w/ code: WIZARDSQL
Web Dev + WordPress + Security

New Book: Wizard’s SQL Recipes for WordPress

I’m excited to launch my latest web-dev book, Wizard’s SQL Recipes for WordPress. I got the idea for this book way back when I was first learning how to build dynamic websites. I thought it would be useful to bring together all of the best SQL snippets in sort of a “spellbook” or “cookbook”. After all, SQL queries can seem like magic to the uninitiated. By entering concise, well-crafted commands, SQL enables anyone to interact with any relational database. It’s […] Continue reading »

Cutting Floor Interview

[ Jeff Starr (aka Perishable) ]

When I spend time on something, like an interview, I like to know that it was actually published somewhere. Below is an interview that I completed for a web-hosting company that apparently now is missing in action. It covers how I got into web development, upcoming projects, web security, work flow, writing books, WordPress, and more.. Continue reading »

WordPress Plugin: Disable WP Robots

Disable WP Robots

WordPress 5.7 features a new Robots API that provides filter-based control over the robots meta tag. So if your site is running WordPress 5.7 or better, you will notice a new <meta /> tag included in the <head></head> section of your web pages. By default, the meta tag added by WordPress has a value of max-image-preview:large, which is fine IF it is the only robots meta tag on the page. If your site already has its own meta robots tag, […] Continue reading »

7G Firewall for Nginx

7G Nginx

After several months of development, the official Nginx version of the 7G Firewall is out of beta and ready for public use. If you are not familiar with 7G Firewall, check out the documentation for the Apache/.htaccess version. The Nginx version of the 7G Firewall works the exact same way, so I won’t bother repeating everything here. The only difference is the implementation, how to set it up on an Nginx server, which is explained in this post. Continue reading »

4 Ways to Make a WordPress Site Private Access Only

LOTR: Doors of Durin

Have you ever wanted to make a WordPress site private? So that only specific users are allowed access? For example, for my found-images site eChunks.com, I decided to require user login in order to access any content. So now for that site, public access is not allowed, and any posts, images, and all other content is available only to logged-in users. This tutorial explains four ways to make a WordPress site private or members only, so that only authenticated/trusted users […] Continue reading »

Free WordPress Plugin: Disable Application Passwords

Disable Application Passwords

Launching a free plugin to disable the new Application Passwords feature introduced in WordPress version 5.6. The plugin is one line of code. Install and activate to completely disable all of the Application Passwords functionality. To re-enable all Application Passwords, simply deactivate/uninstall the plugin. Easy peasy. Continue reading »

Customize BBQ Firewall

BBQ Firewall

BBQ Firewall is a lightweight, super-fast plugin that protects your site against a wide range of threats. BBQ checks all incoming traffic and quietly blocks bad requests containing nasty stuff like eval(, base64_, and excessively long request-strings. This is a simple yet solid solution for sites that are unable to use a strong Apache/.htaccess firewall. Continue reading »

Code Snippets to Customize WordPress Sitemaps (Complete Guide)

Code Snippets for WP Sitemaps

By now most have heard about the WP Sitemaps feature introduced in WordPress version 5.5. From what I’ve read most existing sites that needed a sitemap already had one via one of the many free sitemap plugins. But for new WordPress sites going forward, having all the sitemap code in the WordPress core now means that new sites have the option of rolling with the default WordPress sitemaps, or use a dedicated plugin to do the job. This post is […] Continue reading »

7G Firewall: September 2020 Update

2020 September Sky

Pleased to announce that the 7G Firewall is updated to version 1.3 (September 3rd, 2020). Now available for download, 100% free and open-source as always. Continue reading »

About the Auto-Generated WP Sitemaps and How to Disable Using Simple Code or a Free Plugin

WordPress Plugin: Disable WP Sitemaps

WordPress 5.5 and beyond features built-in sitemaps that are enabled by default. For new users and sites this may be a good thing. Now users don’t have to bother with thinking about how to implement a sitemap. Like with Privacy control, WordPress just does it for you automagically. BUT for the millions of sites that already have a sitemap thanks to any of the excellent and free sitemap plugins — that’s like maybe 5–10 million websites — well congratulations you […] Continue reading »

WordPress Plugin: Disable Media Sizes

WordPress Plugin: Disable Media Sizes

Whenever you upload an image using the Media Library, WordPress automatically creates a set of alternate-size images. The number and size of these auto-generated images continues to grow each year, as WordPress tries to keep up with increasingly hi-resolution screen sizes. For many WordPress-powered websites, the extra media sizes enable WordPress to serve images responsively and that’s a good thing. But for some WordPress sites, all the extra images simply are not necessary. In some cases downright wasteful. And that’s […] Continue reading »

WordPress Plugin: Disable Lazy Load

WordPress Plugin: Disable Lazy Load

WordPress 5.5 brings some cool new features, including built-in support for lazy-loading images. So whether you want it or not, WordPress will add a new “loading” attribute to all of your images. That way supportive browsers will be able to load your images as the user scrolls the page, instead of trying to load everything at once. It’s a popular front-end technique that may help to boost performance a little bit. Like anything else, there are pros and cons to […] Continue reading »

7G Out of Beta

The 7G Firewall was released about a year ago as beta, and has had time now to mature/develop into a stable release. So this is just a heads up that 7G is now officially out of beta and ready for use in live/production environments. Continue reading »

7G Addon: Stop Aggressive Scanning for Uploads-Related Targets

Around the end of December 2019 and then now well into January of 2020, I’m seeing a massive spike in aggressive malicious scanning for uploads-related targets. In particular, there are massive numbers of requests for URL targets involving uploadify, plupload, and similar. Typical scans hitting upwards of 30K–50K requests per attack. Just relentless exploit scanning on steroids. Continue reading »

WordPress Plugin: Override Comment Options

[ Override Comment Options ]

Want to keep comments open on a few old posts? This plugin is for you. It does one thing and does it well: it overrides the WordPress setting, “Automatically close comments on articles older than x days”. So you can leave comments open for any individual posts that may have passed the deadline. I actually wrote this plugin for use here at Perishable Press. Normally comments are closed after 90 days, but there are a few old posts for which […] Continue reading »

How to Fix _blank Target Vulnerability

[ _blank Target Vulnerability ]

In this article, I am reposting part of my recent tutorial, WordPress and the Blank Target Vulnerability. That post is aimed at WordPress specifically, however most of the article applies to HTML in general. So the tutorial below explains how to fix all “blank target” links, regardless of whether or not WordPress is involved. Continue reading »

Welcome
Perishable Press is operated by Jeff Starr, a professional web developer and book author with two decades of experience. Here you will find posts about web development, WordPress, security, and more »
USP Pro: Unlimited front-end forms for user-submitted posts and more.
Thoughts
Finally feeling better and back on track to launch SAC Pro this June or July.
All plugins updated for WordPress 6.0 (drops tomorrow)!
Coding never ends. Bring a snack.
Not posting anything online usually means I’m busy working on my next project.
Today is my 50th B-day :)
Deep in the code.
Making good progress on my next pro plugin, Simple Ajax Chat Pro :)
Newsletter
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.