Currently browsing Blog
Our blog deals with page speed optimization, page loading, web performance, WordPress tutorials, PHP code wrangling, JavaScript tutorials and code snippets. Our web insights series allow designers and developers to discover the latest and most significant stories on the web, while sipping a hot coffee.
Monday, September 22, 2025
How to Add Voice Search Capability to Your WordPress Site
How to Add Voice Search to Your WordPress Site Ever wanted to offer voice search functionality on your WordPress site?…
Monday, September 22, 2025
How to Generate an Expandable Archive List in WordPress
Creating an expandable and collapsible archive list in WordPress is a great way to provide users with an organized view…
Sunday, November 16, 2025
Why ImagePress is the Best Plugin for Wedding Photographers
Introduction “Amazing support and plugin! Support was 10/10 and helped me solve a few issues I had with the Pro…
Monday, December 16, 2024
How to Create a Logo Carousel as a WordPress Plugin
You would be surprised to see many bloated alternatives to this simple task. Even in the age of the WordPress…
Monday, September 22, 2025
How to Create and Manage Multiple WordPress Subsites in Bulk
My latest project involved a WordPress Multisite installation and 20+ subsites. As the websites were the same, both from a…
Friday, August 16, 2024
How to Extend or Create Variations for WordPress Blocks
WordPress comes with a set of native blocks that should be enough for every designer. However, if you are a…
Monday, September 22, 2025
How to Protect Your WordPress Website Against Malware Attacks
I wrote before about this topic, and I have proactively created WordPress plugins, code, and functionality to successfully prevent malware…
Tuesday, February 25, 2025
PropertyPin – A Visual Bookmarking Platform for Property Images
By now, you should be familiar with my ImagePress plugin for WordPress. If not, here’s the gist: it allows website…
Monday, July 29, 2024
How to Get Dominant Colours of an Image in PHP
This feature has been requested by some of my ImagePress customers. It is also being used on my PropertyPin website.…
Wednesday, July 17, 2024
How to Completely Remove the Jetpack Plugin
This is mostly a note to myself. Jetpack is a well-used plugin on a number of sites and has over…
Thursday, July 11, 2024
ClassicPress TinyMCE: How to Add Styles, Buttons, Fonts, Dropdowns & Popups
When I took over FX Builder and started updating it for the new ClassicPress 2+, I wanted to add some…
Wednesday, December 10, 2025
Moving to a System Font Stack (How and Why)
I believe the “why” in the title is self-explanatory. If not, it’s all about performance. Over the past decade, I…
Friday, July 12, 2024
How to Build a Vertical Off-Canvas Menu Bar Using JavaScript and CSS
In my work, coming up with fresh navigation ideas and creating an intuitive and efficient navigation system is essential for…
Monday, September 22, 2025
How to Correctly Configure GDPR Privacy and Google Consent Mode v2
For this tutorial, I will use the WP Google Consent Platform (GCP) plugin for WordPress. This is a two-step operation.…
Thursday, May 2, 2024
How to Lazy Load Google Map Iframe Embed in WordPress
If you embed a Google Map iframe on your WordPress website, you may notice an increase in the total webpage…
Monday, September 22, 2025
What’s New in the Latest Lighthouse Release
The last few releases of Lighthouse have been silent, and fixed or patched various issues with individual websites. I have…
Monday, May 12, 2025
Dark Mode for Lighthouse!
I’ve long wanted to add a dark mode to my WordPress back-end, but “thanks” to the block editor, it’s not…
Thursday, May 9, 2024
WordPress Plugins and User Experience
What happens when WordPress plugins reach maturity? At this moment, and I’m talking strictly from a code/design point of view,…
Monday, September 22, 2025
How to Build a Front-end Password Reset Form in WordPress
I have just moved an entire user account module from the back-end of WordPress to the front-end. This includes the…
Tuesday, March 19, 2024
WordPress Plugins – Focus Update
“Every 3-6 months, it’s smart to take a step back and see if you are still on the path you…
Monday, May 12, 2025
Lighthouse – CAPTCHA, Akismet Integration and Spam Registration Hooks
I am excited to announce the latest release of Lighthouse in 2024, the WordPress performance tuning plugin that removes a…
Friday, January 19, 2024
New ImagePress release, new profile editor UI and lots of issues fixed
The latest version of ImagePress decouples the user profile hooks from the front-end profile editor. The reason is that, when…
Monday, December 16, 2024
Mingle Forum Refactoring, Dogfooding and More
I have just launched version 3 of my Mingle Forum plugin. Yes, forums are a dying breed, and that’s why…
Tuesday, January 9, 2024
The Golden Age of Forums
Do you remember forums? They’re still around, obviously, but do you remember the golden age of forums? Every developer or…
Monday, September 22, 2025
How to Build a Multi-User Image Gallery in WordPress: A Comprehensive Guide
So, you want to build a specialized online platform designed for artists, particularly those in the fields of digital art,…
Friday, July 12, 2024
ImagePress – User Onboarding
The latest version of ImagePress has a new feature: onboarding. It's something that every plugin should have, and this is…
Wednesday, April 30, 2025
tail.select is getting an update
The tail.select JavaScript library is getting an update, jumping from 0.5.x to 1.0.0, and breaking custom functionality.
Monday, September 22, 2025
Advantages of PHP 8.3 with WordPress
I have upgraded my hosting server to PHP 8.3 for all my WordPress and non-WordPress websites. While I am yet…
Tuesday, October 29, 2024
How to build a block editor sidebar using vanilla JavaScript
This article will explain how I moved away from the True Metabox plugin and coded my own sidebar for a…
Monday, September 22, 2025
20 essential steps in payment gateway testing for your WordPress plugin store
We have recently updated the user interface for our WordPress plugin store. We have also updated the customer experience with…
Monday, September 22, 2025
How to remove spam users and prevent spam registrations
A client of mine had an old website that grew uncontrollably large with thousands of spam registrations, spam posts, spam…
Monday, September 22, 2025
How to Enable JavaScript
How to enable JavaScript in your browser and why Nowadays, all web pages contain JavaScript, a scripting programming language that…
Tuesday, September 26, 2023
The Musk Algorithm
Walter Isaacson’s new book about Elon Musk is a fine biography, but an even better business book. And like all the best…
Monday, September 25, 2023
Segmented Horizontal Bar Chart (Graph) Using Vanilla JavaScript
If you're looking to create a segmented (stepped) horizontal bar chart using nothing but vanilla JavaScript, you're in luck!
Wednesday, September 20, 2023
How to allow subsite administrators to edit users in a WordPress Multisite Network
WordPress Multisite is a powerful feature that allows me to manage multiple WordPress websites (or subsites) from a single installation.…
Wednesday, September 20, 2023
How You Can Join Successful Sellers Running an Amazon Business from Home
If you follow technology trends in recent years, you can’t help but notice the number of people running their Amazon…
Thursday, September 7, 2023
How to disable and remove old post revisions in WordPress (including multisite)
If you don't want to use a plugin to clean up your WordPress website and insist on custom coding it,…
Wednesday, April 30, 2025
How to add a Media Manager button to a block editor metabox
How to add a "Manage Media" (remember "Add Media"?) button to any post type and allow users to attach images,…
Monday, September 22, 2025
A collection of modern native JavaScript object and array utilities
Arrays Chunk Creates an array of elements split into groups the length of size. Compact Creates an array with all…
Monday, July 28, 2025
How I am tracking my WordPress plugin updates on my own update server
I am selling my WordPress plugins, and they all come with a lifetime updater feature. Most of my plugins, including…
Tuesday, June 20, 2023
How to get all videos from a YouTube channel using PHP and JavaScript
The code below works with multiple channels. First, we need to loop through all channels and get all videos. The…
Tuesday, February 17, 2026
How Active Analytics Stores Data Without Slowing Down Your WordPress Database
I have released a new version of the Active Analytics plugin for WordPress. This version focuses entirely on data storage,…
Monday, May 12, 2025
Lighthouse is removing the Core Web Vitals and CrUX features
Why? There are multiple reasons and multiple factors involved. There are a few key reasons behind this change, all of…
Monday, May 12, 2025
How I tackled WordPress registration spam
For a while now, I have been using Mika’s Ban Hammer plugin with a custom list of blacklisted domain names…
Tuesday, February 17, 2026
Tracking pageviews, sessions and unique users in WordPress using Active Analytics
For almost 2 years, I’ve been tracking WordPress visits using my Active Analytics plugin. I’ve gradually removed Google Analytics from…
Monday, June 24, 2024
QuakeWiki.net is changing owners
It’s time for me to pass the torch to another huge Quake fan – Spirit from Quaddicted.com. I’ve been the…
Tuesday, March 19, 2024
How to code a website security audit using PHP and WordPress
This tutorial will teach you how to build a website security audit in the form of a WordPress plugin. We…