I’ve always made use of CSS text-decoration properties in my theme designs and other dev work. From underlining text to making hyperlinks look great, text-decoration is essential CSS. Until recently I was not aware of a couple of related properties, text-underline-offset and text-underline-position. I am currently planning the next redesign of Perishable Press and thinking about using text-underline-offset to add some style to various link elements. So this post is to bring these related CSS properties together on paper, forever […] Continue reading »
Simple Download Counter is a free WordPress plugin that does exactly what it says: counts the number of times your files are downloaded. SDC is designed for maximum ease of use. The goal is a clean, lightweight “set it and forget it” solution for keeping track of downloads. Simply add your files via the plugin settings and display download links via shortcodes. Simple Download Counter does the rest. Continue reading »
New WordPress plugin! Simple Login Notification does one thing and does it well: sends an email alert whenever an admin-level user logs in to your site. I use this plugin on all of my sites to keep an eye on any unauthorized activity. Not that I’m expecting any, but if it does happen I definitely want to know about it. The plugin size is only 4 KB (zipped) with virtually zero impact on performance or anything else. Win win win, […] Continue reading »
I’ve been developing WordPress chat plugins for over 10 years, and have received tons of great user feedback for the free version of Simple Ajax Chat (SAC). So many ideas and ways to improve the plugin that it just made sense to bring it all together and build a new “pro” version. So after several months of intense plugin development, I am excited to launch my latest WordPress plugin, SAC Pro. SAC Pro is completely rewritten from the ground up, […] Continue reading »
“Quick” post about an error that may occur with WordPress 6.0 (and possibly other versions). After updating to WordPress 6, the JavaScript Errors Notifier extension was showing a “QTags is not defined” error on sites where custom Quicktags are configured (via plugins or custom scripts). Because of the error, custom Quicktags were broken and not added to the editor toolbar. This quick post explains why the error is happening and how to fix it (easily). Continue reading »
Heads up about the JavaScript Errors Notifier extension for Google Chrome. Looks like it was removed from the Chrome store sometime last year. Not sure of the reason behind it, but can tell you that currently there are no suitable extensions to replace it. Kinda sucks because JavaScript Errors Notifier was one of my favorite “always on” extensions. It makes it easy to spot any JavaScript errors as you develop, design, or browse the Web. Fortunately there’s still a way […] Continue reading »
It’s sad that we’ve arrived at a place where it needs to be said. Unfortunately, 3rd-party email services such as Yahoo, Hotmail, Gmail, and so forth have to deal with tons and tons of spam. So they tend to use very aggressive spam-filtering rules. Overly aggressive, in many cases. Continue reading »
This year, 2022, will be the 18th year that Perishable Press is online. The first year (2004–2005) was mostly behind-the-scenes development and site building. If you do a Whois lookup for the domain name, perishablepress.com, you’ll find the creation date is 2004-07-14. I had to look that up myself for this post. It was so long ago.. lol. So once the site went live in 2005, it was off to the races. Fast forward 18 years and here we are, […] Continue reading »
For years, I’ve not used ModSecurity for any of my own sites. Way back when I first tried ModSecurity, there were just too many false positives, so I stayed away from it, opting instead to develop my own fast Apache/.htaccess firewall. But my web host now is telling me that ModSecurity is required on all of their managed VPS plans. Continue reading »
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 »
Just a heads up! I’m in the process of migrating all book accounts to the new bookstore at Perishable Press Books. The goal is to streamline everything — all books and user accounts — under the new books domain. This will make everything much simpler for everyone. Eventually, the other book sites will be taken offline, after everything is migrated to the new bookstore here at Perishable Press. Continue reading »
This is an experimental technique that I am playing with. It’s the simplest possible way that I could think of to protect all files in the WordPress Media Library using only Apache/.htaccess. I’ve been testing the code on an image-heavy site and so far there are no issues. So I want to put the code out there for others to test and hopefully provide feedback if anything less than perfect. It’s a super simple method that prevents media files from […] Continue reading »
Whoops! I spaced off sending this before July, so figured better late than never :) Hello! As you may have heard, Google/Feedburner is dropping support for their “Subscribe via Email” feature. This free service grabs the latest content from a site’s RSS feed and delivers it via email to a list of subscribers. So whenever a new post is published here at Perishable Press, Feedburner delivers an HTML-formatted copy direct your inbox. The subscribe-via-email service has been available for years […] Continue reading »
I’ve tried 1Password and Dashlane, and several other popular password managers for both Mac and PC. It always seems to be the same thing: things start off great and then go downhill from there. For example, I was loving 1Password, and then it locked me out of my password file/account. Likewise for a couple of years Dashlane was great, but then they started making drastic changes like moving from standalone app to browser extension Web-based UI. The confusion involved with […] Continue reading »
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 »
There are numerous ways to redirect requests using Apache’s mod_rewrite and mod_alias. This concise, friendly tutorial explains different ways to redirect a range of IP addresses, either IPv4 or IPv6. Continue reading »