Building Custom Block Theme Templates: A Plugin Developer’s Guide
|

Building Custom Block Theme Templates: A Plugin Developer’s Guide

A user of my lesser-known plugin, WebberZone Knowledge Base, reported an issue with the page header not displaying when using it with the Twenty Twenty-Four or any other block theme. The Problem The error message I got: File Theme without header.php is deprecated since version 3.0.0 with no alternative available. Please include a header.php template in your theme. With a…

WordPress Tutorial: Geolocated pricing for your WordPress site
|

Geolocated Pricing for Your WordPress Site – A Freemius integration tutorial

I released Contextual Related Posts Pro in June and followed up with Top 10 Pro in September. Both plugins use Freemius to handle licensing. Amongst other things, the benefit of going with Freemius is that I can easily offer licences in USD, GBP or EUR. In this tutorial, you’ll learn how to set up multi-currency plans in Freemius and then configure your website’s…

Cloudflare Configuration Rules
|

Secure Your WordPress Login: How to protect wp-login.php with Cloudflare

Your WordPress login page, i.e. wp-login.php is the main entry point into your WordPress admin area. While you can use a security plugin that can let you rename your site, I prefer protecting my sites at the server level, or even better, before it can hit the server. I’ve been using Cloudflare on my sites…

How to Set Up PHPStan with WordPress and Visual Studio Code
|

How to Set Up PHPStan with WordPress and Visual Studio Code: A Step-by-Step Guide

As a plugin developer, it is imperative to write secure and error-free code. PHP is a widely used programming language, but it has peculiarities and pitfalls that can lead to unexpected errors and warnings in your code. Even simple things like a typo or a missing semicolon can cause problems, and it can be challenging…

Custom Feed Code
|

How to add a custom RSS feed in WordPress

WordPress automatically generates RSS feeds for your posts, categories, tags, comments, and more. You can find the default RSS feed URL for your website by adding /feed/ to the end of your domain name. For example, https://webberzone.com/feed/. However, sometimes you may want to create a custom RSS feed that includes only specific content from your website. For example,…

How to disable auto-update notification emails in WordPress
|

How to disable auto-update notification emails in WordPress

WordPress core, plugins and themes are constantly updated with new features, bug fixes, and security enhancements. Some users may forget or neglect to update their WordPress core, plugins, or themes manually which can expose their sites to potential vulnerabilities or compatibility issues. That’s why WordPress offers the option to enable auto-updates. Auto-updates allow WordPress to…

How to show the number of custom post type items in “At a Glance”
|

How to show the number of custom post type items in “At a Glance”

I recently moved all my plugin announcement posts to a custom post type called Announcements. This allows me to keep my blog posts focussed on some awesome WordPress tutorials that I am writing. So, do subscribe to my newsletter to receive them directly in your inbox! By default, the number of posts from a custom…

How to Self-Host Google Fonts in WordPress with Kadence

How to Self-Host Google Fonts in WordPress with Kadence

Fonts play a crucial role in creating an appealing and engaging website. They enhance the overall aesthetics and readability of your content. Google Fonts is a popular choice for many website owners due to its vast library of high-quality fonts. However, loading fonts from Google’s servers can have some drawbacks, such as slower performance, privacy…

WordPress block development: Building multiple blocks

WordPress block development: Building multiple blocks

This is the fifth part of my Gutenberg block development tutorial series. In the past four chapters, we’ve learnt how to build static and dynamic blocks, add custom settings and change styles. Many of my plugins contained a single block which served as an alternative to the shortcode. However, I did need to build two…

WordPress block development: Building dynamic blocks

WordPress block development: Building dynamic blocks

This tutorial is the fourth part of the WordPress block development series. The first three parts of the series covered creating a simple block using @wordpress/create-block. We then customised the block to display an inline notice/alert with customisable text. In this tutorial, we will create a dynamic block. Unlike static blocks, dynamic blocks are rendered…

WordPress Block Development: Customising the Settings Sidebar

WordPress Block Development: Customising the Settings Sidebar

In The first steps in WordPress block development, I introduced the basics of creating a WordPress block. We then dug deeper into the various block files in the second part of this tutorial series, In this chapter, we’ll continue our journey of building WordPress blocks by extending the Sidebar in the Block Editor to add…