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.
WordPress Security X
When dealing with WordPress security, we need to start from the bottom of the stack and go up. There's usually…
WordPress SEO: How to Calculate Text Readability?
In order to evaluate the effectiveness of your writing, you can easily check the readability of your website pages. Key…
How to recover old images in WordPress
This article is about how to recover old images in WordPress that are still using obsolete or missing sizes. Let’s…
How to Use WordPress: A Developer’s Guide to Classic Themes
At its core, WordPress is a free online tool for building websites and blogs. It’s a scalable, feature-rich Content Management…
Regular Expressions (RegEx) in Google Search Console
A few days ago, I noticed a Google Search Console regular expression query for user questions popping up on Twitter:…
How to parse a WordPress gallery block and return image IDs
How to parse a WordPress gallery block programmatically and return all image IDs in an array using 3 lines of…
Why I removed my dark theme switcher
How I implemented a dark/light theme switcher using JavaScript and CSS for both WordPress and static websites.
Grizzy: How to create a Grid Gallery using modern CSS
Part of the CSS-Only Techniques guide. In this article, we are going to create a grid gallery using CSS only,…
Deep Dive into CSS Grid
This tutorial will dive deep into the CSS Grid Layout, exploring all major elements of Grid and almost all properties…
How to completely remove Post SMTP logged emails
How to completely remove Post SMTP logged emails and session transcripts Post SMTP is an awesome WordPress plugin, but I…
How to scrape content from Meetup.com using PHP
One of my recent projects involved creating WordPress posts from Meetup.com events. As the API is in beta state and…
WordPress: How to display nearby attractions and amenities using Yelp Nearby
This tutorial will show you how to display nearby attractions and amenities based on geographical coordinates (latitude and longitude) using…
How to create a Jetpack Site Stats Aggregator
I believe that Jetpack Site Stats doesn’t need an introduction any more. It provides basic but good insights on your…
How to Add a Block Pattern to a WordPress Theme
Here is a hands-on code snippet on how to add a block pattern (or more) to a WordPress theme. The…
Using Resource Hints to Optimize WordPress Performance
Resource hints provide a way to optimize the performance of your web page on the client side. As the name…
CSS Rounded Corners Gradient Border
Part of the CSS-Only Techniques guide. I had a visually heavy project recently and I had to create a gradient…
“Times New Roman” Enhanced CSS Font Stack
Part of the CSS-Only Techniques guide. “Times New Roman” as a Classic Web Font Option With Historical Ligatures A ligature…
How to Create Double Off-canvas Menus With CSS Only
Part of the CSS-Only Techniques guide. This feature has been part of a website project for many year. The left…
The Ultimate YouTube Video Embed Setup
Here is a loopable, no-controls, perfect-aspect-ratio YouTube video plus the styles for a perfect, full-width video embed.
WordPress External Featured Image via cURL
Here’s the long title for this code snippet — How to set up an external image as a WordPress featured…
How to Create a Fixed Teaser Block in WordPress
This tutorial will show you how to create a collapsible fixed pop-up. It can contain subscriptions forms, contact forms, calls…
How to Create Smaller Buttons for the Block Editor (Gutenberg)
One of the shortcomings of the WordPress default button blocks is the size variation. There is none. Sometimes the buttons…
How to Improve Your Mobile Core Web Vitals: Quick Tip
Do you really need those fancy fonts on mobile devices? No? There’s your answer! This applies to any WordPress theme,…
On/Off Toggle Replacement for WordPress Checkboxes
When it comes to WordPress settings and admin panels, I’ve always been a fan of minimalism and default/native styling. I…
My WordPress Plugins – A Short History
Over the course of my 20 years as a PHP developer, I have developed many WordPress plugins. I don’t have…
How to add a date/time picker to Gravity Forms
Here’s a nice challenge I got the other day regarding a better date/time picker for Gravity Forms. When I say…
How to Create Your Own Image Optimization Plugin by Leveraging Jetpack’s Photon
This is a quick code tutorial detailing how to leverage Jetpack’s Photon for custom images. Not all images in your…
How to Create Your Own Website Screenshot Service by Leveraging WordPress’ mShots API Service
This is an example-based tutorial where you will learn how to create a custom post type called Site, add a…
17 Best Website Speed And Performance Testing Tools
50% of people expect a site to load in less than 2 seconds! Your site’s load time could be the…
How to Submit a Patch to WordPress Core Using TortoiseSVN and Windows 10 (for beginners)
Here’s my steps to submit a patch to WordPress code. The whole process of editing WordPress core and submitting a…
How to Detect Multiple Matterport URLs and Embed Them Automatically
Embedding a Matterport tour in a WordPress page proves to be a bit problematic using the regular link-to-oEmbed method. There’s…
The Ultimate Post-Launch Checklist for Your New WordPress Website
This article is a follow-up of our previous pre-launch checklist article. You will learn how to make your new WordPress…
The Ultimate Pre-Launch Pre-Flight Checklist for Your New WordPress Website
This article is split into 2 parts, and we’ll assume you’re launching anything but a blog. You will learn how…
I Fixed Font Awesome JavaScript Logo
The JavaScript logo colours are yellow (#f7df1e) and black (#000000). Font Awesome SVG Icon The problem with the Font Awesome JavaScript logo is…
Accessible Multiselect Dropdown
Sometimes you need to turn a multiple dropdown into a multiple checkbox selector. No other bells and whistles, no search,…
How to Use IntersectionObserver to Mark Current Scroll Progress
Let’s say you have a list of anchors, or a table of contents, and this list is fixed on screen.…
Thin UI: My Opinionated, Lightweight UI Framework
Thin UI Not your average UI framework, but a minimalist, one-size-does-not-fit-all, lightweight, responsive, modern, opinionated, Flex-based framework. I’ve been building,…
Auto Paragraph Function with URL Parsing and Smilie Detection
This function emulates WordPress wpautop() function for custom PHP scripts, parses URL addresses and adds smilies/emoticons. If you’re coding your…
WordPress “Plugin Manager” Hack
Here’s another hack that targets WordPress admin users using brute force password cracking. In other words, if your WordPress administration…
WordPress WSO Web Shell Hack
I have recently found a nasty hack inside one of my clients’ sites, based on WordPress. Turned out that the…
Google reCAPTCHA v3 using PHP, AJAX and WordPress
After having issues with Google reCAPTCHA v2 and a custom WordPress implementation, I started coding an optimized version using the…
How I Improved My JavaScript Blog Articles Schema
I use WordPress, but I don’t use a specific SEO plugin. Everything is done inside the theme. Last week, I…
How to update your BreadcrumbList schema
If you're getting warnings when checking for breadcrumbs rich results or via your Google Search Console, here's what you need…
How I Planned, Blocked Out and Built a SaaS from Scratch Using WordPress
This is the story of SpeedFactor, a speed and performance tracking SaaS. At its core, the app measures a bunch…
Thin UI Update: Pure CSS Popover to Replace JavaScript One
I had some nice popovers coded for SpeedFactor, but I wasn't happy with the performance, especially for a single element…
An Extreme Approach to Speeding Up WordPress
This tutorial applies to a specific use case: WordPress as a minimal CMS, highly optimized for SEO.
Google Pagespeed Insights vs GTmetrix vs SpeedFactor: Which One Is Better?
Google Pagespeed Insights, GTmetrix and SpeedFactor are all great tools to help identify speed related issues and fix them. All…
How to Optimize WordPress’ Native Settings for Performance
WordPress comes with default settings and options, suitable for blogging. Part of the “Decisions, not options” philosophy, they might not…