Introduction wagtail-seo comes with various SEO settings for your site, including fields for ‘Hours of operation’. I needed to take this data and output it on a template in a nice format. This approach is minimal and effective, so if you are also looking to build a global opening hours widget, then you’re in the […]
Introduction I’ve recently been building some content systems within Wagtail that utilise the ChoiceBlock and MultipleChoiceBlock. The project required these to be modifiable without generating migrations for a few reasons, so I’d like to share my solution for facilitating this. The Code When copying from the following examples, be sure to update the class’ path […]
Since January, I’ve worked full-time in Django and Wagtail development. In my last post, I shared my Dockerfile for deploying such projects. That Dockerfile includes a multi-stage build to reduce the final image size and to improve security. This directly builds on that Dockerfile. The Dockerfile The important part here is lines 48-50. We’re copying […]
Over the last few months, I have worked extensively on several Wagtail projects. Off the back of this, I have decided to pivot from focusing on WordPress development in favour of Django and Wagtail. A big consideration that has come with this decision is managing the deployment of my projects. As a big Docker advocate, […]
Introduction I’ve recently started learning Django, the popular web development framework for Python. Until now, as a PHP developer, I’ve been rather spoiled with the ease of deploying projects thanks to software such as cPanel or Plesk. Having reached the stage of wanting to deploy my first Django project, I realised that Docker would be […]
Introduction This is a bit of a minefield topic, as there are a lot of plugins and ‘solutions’ out there that require you to pay money or install bloated software to accomplish something WordPress is designed to handle. In this post, I will show you how to have WordPress generate specific sizes for your images […]
The Issue We’re Resolving When running a Laravel test suite with Livewire components, the default workflow file provided by GitHub for Laravel likely won’t pass. When using their default config, I was presented with errors such as this: The test in question was simply checking if the component was rendered when a certain page was […]
Introduction The default WordPress comment form contains the following fields: I’m not a fan of the website field, especially since it’s optional anyway. As such, I like to remove it from my blogs. This is a 3-step process: Remove the Website Field This code snippet uses the comment_form_default_fields hook to remove the url field from […]
I felt that my minimal, PHP YouTube client was worth sharing. If you’re looking to do something similar, interacting with the YouTube API via PHP, then look no further.
What are Livewire and Volt? Livewire allows you to build ‘Powerful, dynamic, front-end UIs without leaving PHP’. For me, as a PHP fanboy, it’s quickly becoming my bread and butter for creating reactive components all within the comfort of my own backyard. Livewire Volt is a package you can use on top of Livewire, described […]
Analytics Cloudflare CRON Django Docker Dokploy Email Hosting Git Hermitclock Laravel NGINX NPM PHP Plesk Pygame Python Snippets Wagtail WireGuard WordPress